Python wrapper for OpenCL enabling GPU and parallel computing with comprehensive array operations and mathematical functions
86
{
"context": "This criteria evaluates an engineer's proficiency in using PyOpenCL's OpenGL interoperability features, specifically the acquire and release operations for sharing graphics resources between OpenGL and OpenCL compute contexts. The focus is on correct usage of buffer sharing, synchronization primitives, and resource lifecycle management.",
"type": "weighted_checklist",
"checklist": [
{
"name": "GL context creation",
"description": "Creates an OpenCL context with OpenGL sharing enabled using appropriate context properties (e.g., cl.context_properties with GL context and platform specifications)",
"max_score": 15
},
{
"name": "Buffer wrapping",
"description": "Correctly wraps the OpenGL buffer using cl.GLBuffer.from_gl_buffer() or equivalent to create a shared OpenCL buffer object",
"max_score": 15
},
{
"name": "Acquire operation",
"description": "Uses cl.enqueue_acquire_gl_objects() to gain exclusive compute access to the GL buffer before performing any OpenCL operations",
"max_score": 20
},
{
"name": "Release operation",
"description": "Uses cl.enqueue_release_gl_objects() to return the buffer to OpenGL control after compute operations complete",
"max_score": 20
},
{
"name": "Kernel execution",
"description": "Executes an OpenCL kernel or operation that processes the shared buffer data between acquire and release calls",
"max_score": 15
},
{
"name": "Event synchronization",
"description": "Properly uses wait_for parameter or event.wait() to ensure acquire completes before processing and processing completes before release",
"max_score": 10
},
{
"name": "Error handling",
"description": "Handles exceptions that may occur during acquire/release operations or validates input parameters as specified in the API",
"max_score": 5
}
]
}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