CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/pypi-pycuda

Python wrapper for Nvidia CUDA parallel computation API with object cleanup, automatic error checking, and convenient abstractions.

62%

Overall

Evaluation62%

0.94x

Agent success when using this tile

Overview
Eval results
Files

rubric.jsonevals/scenario-7/

{
  "context": "This criteria evaluates how well the engineer uses PyCUDA's advanced memory management features, specifically memory pools and unified/managed memory capabilities. The focus is on proper usage of DeviceMemoryPool, PageLockedMemoryPool, managed memory allocation functions, and pool statistics tracking.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "DeviceMemoryPool usage",
      "description": "Creates and uses a pycuda.tools.DeviceMemoryPool instance for device memory allocations. The pool should be initialized properly and used for allocating device memory buffers.",
      "max_score": 20
    },
    {
      "name": "PageLockedMemoryPool usage",
      "description": "Creates and uses a pycuda.tools.PageLockedMemoryPool instance for page-locked host memory allocations. The pool should be properly initialized and used for allocating page-locked memory.",
      "max_score": 15
    },
    {
      "name": "Managed memory allocation",
      "description": "Uses PyCUDA's managed memory allocation functions (such as pycuda.driver.managed_empty or pycuda.driver.mem_alloc_managed) to create unified memory that can be accessed from both CPU and GPU. Should properly specify attachment modes if applicable.",
      "max_score": 25
    },
    {
      "name": "Pool-based allocation",
      "description": "Allocates memory using the pool's allocate() method and demonstrates that multiple allocations can be made from the same pool. Memory addresses should be properly tracked.",
      "max_score": 15
    },
    {
      "name": "Memory pool freeing",
      "description": "Returns allocated memory back to the pool for reuse, either explicitly through pool methods or through proper cleanup mechanisms that allow pool reuse.",
      "max_score": 10
    },
    {
      "name": "Pool statistics",
      "description": "Retrieves and uses allocation statistics from the device memory pool, such as the number of active allocations. This may involve accessing pool attributes or methods that track allocation state.",
      "max_score": 10
    },
    {
      "name": "Context initialization",
      "description": "Properly initializes a CUDA context using pycuda.autoinit or explicit context creation (pycuda.driver.init, Device, Context) before performing memory operations.",
      "max_score": 5
    }
  ]
}
tessl i tessl/pypi-pycuda@2025.1.0

tile.json