#线性代数 #OpenCL #代数 #线性 #ocl #低级

ocl-algebra

针对OpenCL的低级线性代数库

1个不稳定版本

使用旧的Rust 2015

0.1.0 2016年12月4日

#8#ocl

MIT/Apache

10KB
145

ocl-algebra

针对OpenCL的低级线性代数库

目标

  • 简单的低级线性代数API
  • 实现同步API(将数据复制到设备,数学运算,将结果复制到主机并删除设备上的数据)
  • 待办事项:实现异步API,在不需要始终在设备之间复制数据的情况下运行多个数学运算
  • 该库可以作为纯Rust代数库的替代后端库

示例

func main() {
    // init library
    let mut c = new();
    
    // init some matrices
    let m0 = Matrix{rows: 2, cols: 2, data: vec![1.0, 2.0, 3.0, 4.0]};
    let m1 = Matrix{rows: 2, cols: 1, data: vec![4.0, 5.0]};
    
    /* matrix multiplication
       [1 2] * [4] = [14]
       [3 4]   [5]   [32] */
    let m = c.mul_matrix_matrix(&m0,&m1);
    
    /* matrix scalar multiplication 
       [1 2] * 1.5 = [1.5 3]
       [3 4]         [4.5 6]*/
    let m = c.mul_matrix_scalar(&m0,1.5);
}

开发

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证的定义,均应按照上述方式双重许可,不附加任何额外条款或条件。


“OpenCL和OpenCL标志是苹果公司的商标,由Khronos授权使用。” “Vulkan和Vulkan标志是Khronos Group Inc.的商标。”

依赖关系

~2.5MB
~40K SLoC