1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
use *;
/*
#[cfg(feature = "opencl")]
#[test]
#[should_panic]
fn test_deref_opencl() {
use custos::OpenCL;
let device = OpenCL::new(0).unwrap();
if device.unified_mem() {
panic!("the cpu ptr needs to be null")
}
let a = Buffer::from((&device, [1., 2., 3., 4.]));
let b = Buffer::from((&device, [2., 3., 4., 5.]));
let mut c = Buffer::from((&device, [0.; 4]));
// does not compile!
slice_add(&a, &b, &mut c);
assert_eq!(c.as_slice(), &[3., 5., 7., 9.,]);
}
*/
/*
#[cfg(feature = "cuda")]
#[test]
// compile-time error instead
#[should_panic]
fn test_deref_cuda() {
use custos::CUDA;
let device = CUDA::new(0).unwrap();
let a = Buffer::from((&device, [1., 2., 3., 4.]));
let b = Buffer::from((&device, [2., 3., 4., 5.]));
let mut c = Buffer::from((&device, [0.; 4]));
slice_add(&a, &b, &mut c);
assert_eq!(c.as_slice(), &[3., 5., 7., 9.,]);
}
*/