JuliaGPU/GPUArrays.jl
Reusable array functionality for Julia's various GPU backends.
What it solves
It provides a standardized set of tools and interfaces for developers creating new GPU array types in Julia. Instead of building GPU array functionality from scratch for every new hardware backend, developers can use this package to speed up the implementation process and ensure compatibility with the broader Julia ecosystem.
How it works
It acts as a counterpart to Julia's AbstractArray interface specifically for GPUs. It defines a set of interface methods that backend developers must implement (such as dense_array_type and sparse_array_type) to enable support for dense and sparse arrays. It also provides device-side array types for various sparse formats (CSC, CSR, COO, and BSR) and offers backend-agnostic wrappers that enable features like broadcasting and mapreduce over GPU sparse arrays.
Who it’s for
This package is intended for developers building GPU backends (such as the creators of CUDA.jl, oneAPI.jl, AMDGPU.jl, or Metal.jl) rather than end users.
Highlights
- Backend-agnostic wrappers: Provides out-of-the-box support for broadcasting and
mapreducefor GPU sparse arrays. - Sparse array support: Includes device-side types for CSC, CSR, COO, and BSR matrices, as well as sparse vectors.
- Interface standardization: Defines a clear set of methods for implementing host-side and device-side array translations.
Related
- Project
- Project
- Project
- Project
- Project