The CUDA language, used for programming NVIDIA GPUs, is not dynamic-data-structure friendly since it was designed for working with data structures of predictable size. The project targets applications, intended to run on GPU, that involve many dynamic data structures with many small allocations and deallocations. We want to design and implement a scheme for dynamically allocating memory for data structures (eg. vector of vector) on demand. The allocator on GPU will allocate a pre-defined amount of memory at a time. The design will try to use this predefined size of memory to service the upcoming requests for a smaller amount of memory from this larger pool. This way the service of memory allocation will be fast as the allocation is already done. We will see how the implementation handles the challenges posed by the GPU for allocating as per demand.



Somesh Singh


  • Andrea Bocci
  • Vincenzo Innocente
  • Felice Pantaleo
  • Marco Rovere