custos 0.7.0

A minimal OpenCL, WGPU, CUDA and host CPU array manipulation engine.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use custos::prelude::*;

fn main() {
    let device = Stack;
    let _buf = Buffer::<i32, _, Dim1<3>>::from((&device, [1, 2, 3]));

    let buf_stack = Buffer::with(&device, [1, 2, 3]);

    let cpu = CPU::new();
    let buf_heap = Buffer::with(&cpu, [1, 2, 3]);

    assert_eq!(buf_stack.read(), buf_heap.read());

    let buf_stack_dim2 = Buffer::with(&Stack, [[1, 2, 3], [7, 2, 1]]);
    let buf_heap_dim2 = Buffer::with(&cpu, [[1, 2, 3], [7, 2, 1]]);

    assert_eq!(buf_heap_dim2.read_to_vec(), buf_stack_dim2.read_to_vec());
}