Python wrapper for OpenCL enabling GPU and parallel computing with comprehensive array operations and mathematical functions
86
Pending
Does it follow best practices?
Impact
86%
1.28xAverage score across 10 eval scenarios
Pending
The risk profile of this skill
{
"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
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10