GPU GEMM Optimizer
This tool analyzes and optimizes low-latency General Matrix Multiplication (GEMM) operations on GPUs for LLM inference. By leveraging vendor-specific libraries like CuPy or ROCm, it helps developers adjust parameters such as block sizes or memory layouts for maximum throughput.
Installation
To use this tool, you need to install the required dependencies:
pip install cupy torch pytestUsage
Run the tool from the command line:
python gpu_gemm_optimizer.py --m <rows_of_A> --n <columns_of_B> --k <columns_of_A_rows_of_B> --device <cuda_or_rocm> [--block_size <block_size>]Example
python gpu_gemm_optimizer.py --m 512 --n 256 --k 128 --device cudaSource Code
import argparse
import numpy as np
import importlib
def analyze_and_optimize_gemm(m, n, k, device, block_size=None):
"""
Analyzes and optimizes GEMM operations for GPUs.
Parameters:
m (int): Number of rows in matrix A.
n (int): Number of columns in matrix B.
k (int): Number of columns in matrix A / rows in matrix B.
device (str): GPU device type ('cuda' or 'rocm').
block_size (int, optional): Block size for optimization.
Returns:
dict: Optimized parameters and performance metrics.
"""
if device not in ['cuda', 'rocm']:
raise ValueError("Unsupported device. Use 'cuda' or 'rocm'.")
# Initialize matrices
A = np.random.rand(m, k).astype(np.float32)
B = np.random.rand(k, n).astype(np.float32)
if device == 'cuda':
try:
cp = importlib.import_module('cupy')
except ImportError:
raise ImportError("CuPy is not installed. Please install it to use CUDA functionality.")
A_gpu = cp.array(A)
B_gpu = cp.array(B)
cp.cuda.Device().synchronize()
# Perform GEMM and measure time
start = cp.cuda.Event()
end = cp.cuda.Event()
start.record()
C_gpu = cp.dot(A_gpu, B_gpu)
end.record()
end.synchronize()
elapsed_time = cp.cuda.get_elapsed_time(start, end) / 1000 # seconds
elif device == 'rocm':
try:
torch = importlib.import_module('torch')
except ImportError:
raise ImportError("PyTorch is not installed. Please install it to use ROCm functionality.")
A_gpu = torch.tensor(A, device='cuda')
B_gpu = torch.tensor(B, device='cuda')
torch.cuda.synchronize()
start = torch.cuda.Event(enable_timing=True)
end = torch.cuda.Event(enable_timing=True)
start.record()
C_gpu = torch.mm(A_gpu, B_gpu)
end.record()
torch.cuda.synchronize()
elapsed_time = start.elapsed_time(end) / 1000 # seconds
# Example optimization: Adjust block size (dummy logic)
optimized_block_size = block_size if block_size else 32
return {
"optimized_block_size": optimized_block_size,
"performance_seconds": elapsed_time,
"result_shape": C_gpu.shape
}
def main():
parser = argparse.ArgumentParser(description="GPU GEMM Optimizer")
parser.add_argument('--m', type=int, required=True, help="Number of rows in matrix A")
parser.add_argument('--n', type=int, required=True, help="Number of columns in matrix B")
parser.add_argument('--k', type=int, required=True, help="Number of columns in matrix A / rows in matrix B")
parser.add_argument('--device', type=str, required=True, choices=['cuda', 'rocm'], help="GPU device type")
parser.add_argument('--block_size', type=int, default=None, help="Block size for optimization")
args = parser.parse_args()
try:
result = analyze_and_optimize_gemm(args.m, args.n, args.k, args.device, args.block_size)
print("Optimized Parameters:", result)
except Exception as e:
print("Error:", str(e))
if __name__ == "__main__":
main()
README
GPU GEMM Optimizer
This tool analyzes and optimizes low-latency General Matrix Multiplication (GEMM) operations on GPUs for LLM inference. By leveraging vendor-specific libraries like CuPy or ROCm (via PyTorch), it helps developers adjust parameters such as block sizes or memory layouts for maximum throughput.
Installation
To use this tool, you need to install the required dependencies:
pip install cupy torch pytestUsage
Run the tool from the command line:
python gpu_gemm_optimizer.py --m <rows_of_A> --n <columns_of_B> --k <columns_of_A_rows_of_B> --device <cuda_or_rocm> [--block_size <block_size>]Example
python gpu_gemm_optimizer.py --m 512 --n 256 --k 128 --device cudaTesting
Run the tests using pytest:
pytest test_gpu_gemm_optimizer.pyNotes
- Ensure you have the appropriate GPU hardware and drivers installed for CUDA or ROCm.
- The tool dynamically imports CuPy or PyTorch, so ensure the required library is installed based on your GPU backend.
Community
Downloads
ยทยทยท
Rate this tool
No ratings yet โ be the first!
Details
- Tool Name
- gpu_gemm_optimizer
- Category
- Optimizing LLM Inference Efficiency
- Generated
- July 1, 2026
- Tests
- Passing โ
- Fix Loops
- 3
Quick Install
Clone just this tool:
git clone --depth 1 --filter=blob:none --sparse \ https://github.com/ptulin/autoaiforge.git cd autoaiforge git sparse-checkout set generated_tools/2026-07-01/gpu_gemm_optimizer cd generated_tools/2026-07-01/gpu_gemm_optimizer pip install -r requirements.txt 2>/dev/null || true python gpu_gemm_optimizer.py