custos-math

Crates.iocustos-math
lib.rscustos-math
version0.6.3
sourcesrc
created_at2022-07-17 09:47:15.610688
updated_at2023-02-11 20:10:52.283519
descriptionMatrix operations with custos
homepage
repositoryhttps://github.com/elftausend/custos-math
max_upload_size
id627149
size221,902
(elftausend)

documentation

README

custos-math

Crates.io version Docs

This crate provides CUDA, OpenCL, CPU (and Stack) based matrix operations using custos.

Installation

Add "custos-math" as a dependency: You will also need custos, if you want to run an example.

[dependencies]
custos-math = "0.6.3"

# to disable the default features (cuda, opencl) and use an own set of features:
#custos-math = { version="0.6.3", default-features = false, features=["opencl"]}

custos-math supports no-std via the no-std feature. This activates the "stack" feature, providing a Stack device.

custos is accessible via custos_math::custos::{..}

Example

use custos_math::{Matrix, custos::CPU};

fn main() {
    let device = CPU::new();

    let a = Matrix::from((&device, (2, 3), [1., 2., 3., 4., 5., 6.,]));
    let b = Matrix::from((&device, (3, 2), [6., 5., 4., 3., 2., 1.,]));

    let c = a.gemm(&b);

    assert_eq!(c.read(), vec![20., 14., 56., 41.,]);
}

Many more examples can be found in the tests and examples folder.

Commit count: 202

cargo fmt