Python wrapper for OpenCL enabling GPU and parallel computing with comprehensive array operations and mathematical functions
86
{
"context": "This evaluation assesses how well the engineer uses PyOpenCL's buffer creation, transfer, and management capabilities. The focus is on proper usage of PyOpenCL's Buffer class, enqueue operations for data transfer (enqueue_copy, enqueue_read_buffer, enqueue_write_buffer), and device memory management patterns.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Context initialization",
"description": "Uses pyopencl.create_some_context() or pyopencl.Context() to create an OpenCL context, and pyopencl.CommandQueue() to create a command queue for buffer operations.",
"max_score": 15
},
{
"name": "Buffer creation",
"description": "Uses pyopencl.Buffer() to create device buffers with appropriate memory flags (e.g., cl.mem_flags.READ_WRITE, cl.mem_flags.READ_ONLY, cl.mem_flags.WRITE_ONLY) for holding data on the device.",
"max_score": 20
},
{
"name": "Host-to-device transfer",
"description": "Uses cl.enqueue_copy() or cl.enqueue_write_buffer() to transfer data from numpy arrays on the host to device buffers, passing the correct queue, destination buffer, and source data.",
"max_score": 25
},
{
"name": "Device-to-host transfer",
"description": "Uses cl.enqueue_copy() or cl.enqueue_read_buffer() to transfer data from device buffers back to host numpy arrays, ensuring proper synchronization and data retrieval.",
"max_score": 25
},
{
"name": "Device-to-device copy",
"description": "Uses cl.enqueue_copy() with two device buffers (source and destination) to perform efficient device-to-device memory copy without transferring data through host memory.",
"max_score": 15
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-pyopencldocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10