Cross Platform GPU-Capable Framework?

This page summarizes the projects mentioned and recommended in the original post on /r/gpgpu

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • GLSL

    GLSL Shading Language Issue Tracker

  • This gets you most of small int arithmetic and 64 bit arithmetic (though f16 is missing, and that's annoying...) robust buffer access errors on out of bounds access in shader (can be disabled in other builds), descriptr indexing allows you to index descriptors, scalar block layout allows contiguous homogenous layouts of non pow2 aligned types ie float3, timeline semaphores allow better synchronization control, bufferDeviceAddess allows usage of pointers in shader code for global memory.

  • kompute

    General purpose GPU compute framework built on Vulkan to support 1000s of cross vendor graphics cards (AMD, Qualcomm, NVIDIA & friends). Blazing fast, mobile-enabled, asynchronous and optimized for advanced GPU data processing usecases. Backed by the Linux Foundation.

  • Personally I use Kompute. Its a vulkan based library which is fairly easy to get started with in my experience.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • OpenCLOn12

    The OpenCL-on-D3D12 mapping layer

  • OpenCL really is your best bet for a cross-platform GPU-capable framework. OpenCL 3.0 cleared out a lot of the cruft from OpenCL 2.x so it's seeing a lot more adoption. The most cross-platform solution is still OpenCL 1.2, largely for MacOS, but OpenCL 3.0 is becoming more and more common for Windows and Linux and multiple devices. Even on platforms without native OpenCL support there are compatibility layers that implement OpenCL on top of DirectX (OpenCLOn12) or Vulkan (clvk and clspv).

  • clvk

    Implementation of OpenCL 3.0 on Vulkan

  • OpenCL really is your best bet for a cross-platform GPU-capable framework. OpenCL 3.0 cleared out a lot of the cruft from OpenCL 2.x so it's seeing a lot more adoption. The most cross-platform solution is still OpenCL 1.2, largely for MacOS, but OpenCL 3.0 is becoming more and more common for Windows and Linux and multiple devices. Even on platforms without native OpenCL support there are compatibility layers that implement OpenCL on top of DirectX (OpenCLOn12) or Vulkan (clvk and clspv).

  • clspv

    Clspv is a compiler for OpenCL C to Vulkan compute shaders

  • OpenCL really is your best bet for a cross-platform GPU-capable framework. OpenCL 3.0 cleared out a lot of the cruft from OpenCL 2.x so it's seeing a lot more adoption. The most cross-platform solution is still OpenCL 1.2, largely for MacOS, but OpenCL 3.0 is becoming more and more common for Windows and Linux and multiple devices. Even on platforms without native OpenCL support there are compatibility layers that implement OpenCL on top of DirectX (OpenCLOn12) or Vulkan (clvk and clspv).

  • alpaka

    Abstraction Library for Parallel Kernel Acceleration :llama: (by alpaka-group)

  • Note that Kokkos uses CUDA, OpenMP and also SYCL in order to have a wide range of targets. I'd also suggest taking a look at Alpaka https://github.com/alpaka-group/alpaka which is similar in some ways.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts