1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2016年12月4日 |
---|
#8 在 #ocl
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版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证的定义,均应按照上述方式双重许可,不附加任何额外条款或条件。
“OpenCL和OpenCL标志是苹果公司的商标,由Khronos授权使用。” “Vulkan和Vulkan标志是Khronos Group Inc.的商标。”
依赖关系
~2.5MB
~40K SLoC