@@ -21,22 +21,33 @@ fn test_backend(){
2121
2222#[ allow( unused_must_use) ]
2323fn main ( ) {
24- println ! ( "There are {} available backends" , get_backend_count( ) . unwrap( ) ) ;
25- let err = set_backend ( AfBackend :: AF_BACKEND_CPU ) ;
26- match err {
27- Ok ( _) => test_backend ( ) ,
28- Err ( e) => println ! ( "CPU backend not available: {}" , e) ,
29- } ;
30-
31- let err = set_backend ( AfBackend :: AF_BACKEND_CUDA ) ;
32- match err {
33- Ok ( _) => test_backend ( ) ,
34- Err ( e) => println ! ( "CUDA backend not available: {}" , e) ,
35- } ;
36-
37- let err = set_backend ( AfBackend :: AF_BACKEND_OPENCL ) ;
38- match err {
39- Ok ( _) => test_backend ( ) ,
40- Err ( e) => println ! ( "OpenCL backend not available: {}" , e) ,
41- } ;
24+ println ! ( "There are {:?} available backends" , get_backend_count( ) . unwrap( ) ) ;
25+ let available = get_available_backends ( ) . unwrap ( ) ;
26+
27+ if available. contains ( & AfBackend :: AF_BACKEND_CPU ) {
28+ println ! ( "Evaluating CPU Backend..." ) ;
29+ let err = set_backend ( AfBackend :: AF_BACKEND_CPU ) ;
30+ match err {
31+ Ok ( _) => test_backend ( ) ,
32+ Err ( e) => println ! ( "CPU backend error: {}" , e) ,
33+ } ;
34+ }
35+
36+ if available. contains ( & AfBackend :: AF_BACKEND_CUDA ) {
37+ println ! ( "Evaluating CUDA Backend..." ) ;
38+ let err = set_backend ( AfBackend :: AF_BACKEND_CUDA ) ;
39+ match err {
40+ Ok ( _) => test_backend ( ) ,
41+ Err ( e) => println ! ( "CUDA backend error: {}" , e) ,
42+ } ;
43+ }
44+
45+ if available. contains ( & AfBackend :: AF_BACKEND_OPENCL ) {
46+ println ! ( "Evaluating OpenCL Backend..." ) ;
47+ let err = set_backend ( AfBackend :: AF_BACKEND_OPENCL ) ;
48+ match err {
49+ Ok ( _) => test_backend ( ) ,
50+ Err ( e) => println ! ( "OpenCL backend error: {}" , e) ,
51+ } ;
52+ }
4253}
0 commit comments