Crate gpurs

source ·
Expand description

gpurs

A general-purpose linear algebra toolkit for scientific computing including GPU acceleration through OpenCL

Notices

  • This crate is currently very much in development, and every feature and piece of syntax is subject to change. I’m trying to slow down with the major syntactic overhauls, but no promises.

  • This crate loads GPU acelerator modules and thus requires the OpenCL SDK by default. To opt out of this (for instance if you have no GPU) set the flag default-features = false when adding gpurs to your Cargo.toml file.

    • For NVIDIA GPUs, the OpenCL SDK is available through the CUDA installer.

Further Reading

Tips and Tricks

  • Declare a type at the top of your file that is equivalent to your desired floating point precision, and use that as the generic parameter for your initializations. This means you only have to change one value to change your entire file’s precision instead of changing each of them individually! If you really wanted you could make a global type and import that to change it in one place for your entire project!
type P = f64; // Replace f64 with f32 at any point to change the precision of the whole file!

let identity: Matrix<P> = Matrix::<P>::identity(size);

Modules

  • Module containing objects for geometric vectors and transforms.
  • Module for GPU-based mass vector transformation.
  • Module for GPU Acceleration of Linear Algebra operations.
  • Module containing the Matrix struct and associated utilities.

Enums

Traits

  • Trait allowing objects to be implemented for single or double precision floats

Type Aliases

  • Shorthand result type for gpurs.