Skip to content

playground development for multi backend management for GPU usage

License

Notifications You must be signed in to change notification settings

clEsperanto/MultiBackends

Multi-Backends

Playground repo for CUDA and OpenCL Backend development.

Roadmap

  • CMake build system
  • Device (CUDA, OpenCL)
    • Device initialisation
    • Device info
    • Device program cache
  • Backends (CUDA, OpenCL)
    • Device search
    • Device selection
    • Buffer
      • Buffer allocate to device (create)
      • Buffer copy to host (read)
      • Buffer copy to device (write)
      • Buffer copy device to device (copy)
      • Buffer free
    • Image (1D/2D/3D)
      • Image allocate to device (create)
      • Image copy to host (read)
      • Image copy to device (write)
      • Image copy device to device (copy)
      • Image free
    • Program (ocl) / Module (cuda) creation from source
    • Kernel launch
  • Backend Manager (singleton)
  • Array (CUDA, OpenCL)
    • Array creation
    • Array allocate to device (create)
    • Array copy to host (read)
    • Array copy to device (write)
    • Array copy device to device (copy)
    • Array free
  • Image (CUDA, OpenCL)
    • Image creation
    • Image allocate to device (create)
    • Image copy to host (read)
    • Image copy to device (write)
    • Image copy device to device (copy)
    • Image free
  • Execution
    • Generate Defines
    • Get Preamble
    • Manage kernel parameters
    • Launch kernel

Install

Git clone the repository and run cmake as followed:

cmake -S . -B ./build
cmake --build ./build --parallel 10

Requirements

  • CMake
  • C++ compiler
  • CUDA and/or OpenCL installed on the system

About

playground development for multi backend management for GPU usage

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published