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's context management and synchronization capabilities to implement a GPU context manager. It focuses on proper device initialization, context lifecycle management, synchronization operations, and device property queries.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Device initialization",
"description": "Uses pycuda.driver.Device to initialize and select the GPU device by device_id in the __init__ method",
"max_score": 15
},
{
"name": "Context creation",
"description": "Uses pycuda.driver.Context or pycuda.autoinit to create/initialize a CUDA context in the __enter__ method",
"max_score": 20
},
{
"name": "Context cleanup",
"description": "Properly cleans up the context in the __exit__ method using Context.pop() or Context.detach() to release GPU resources",
"max_score": 20
},
{
"name": "Context synchronization",
"description": "Uses pycuda.driver.Context.synchronize() or pycuda.driver.Context.get_current().synchronize() in the synchronize method to ensure GPU operations complete",
"max_score": 25
},
{
"name": "Device properties",
"description": "Uses Device.name() and Device.total_memory() methods to retrieve device information in the get_device_info method",
"max_score": 20
}
]
}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