Python wrapper for Nvidia CUDA parallel computation API with object cleanup, automatic error checking, and convenient abstractions.
{
"context": "This criteria evaluates how well the engineer uses PyCUDA to implement GPU-accelerated image brightness adjustment, specifically focusing on kernel compilation, proper kernel launch configuration with grid/block dimensions, and efficient memory management.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Kernel Compilation",
"description": "Uses pycuda.compiler.SourceModule to compile a CUDA kernel that performs the brightness adjustment operation",
"max_score": 20
},
{
"name": "Grid/Block Configuration",
"description": "Correctly configures grid and block dimensions when launching the kernel, using appropriate 2D thread organization (e.g., block=(16, 16, 1) and grid dimensions calculated based on image size)",
"max_score": 30
},
{
"name": "Kernel Invocation",
"description": "Properly invokes the compiled kernel function by calling it with the configured grid, block, and appropriate arguments",
"max_score": 20
},
{
"name": "Memory Transfer",
"description": "Uses pycuda.driver memory allocation (mem_alloc) and transfer functions (memcpy_htod, memcpy_dtoh or gpuarray.to_gpu/get) to move data between host and device",
"max_score": 20
},
{
"name": "Context Initialization",
"description": "Properly initializes PyCUDA with pycuda.autoinit or manually creates and manages a CUDA context using pycuda.driver.Device and Context",
"max_score": 10
}
]
}tessl i tessl/pypi-pycuda@2025.1.0docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10