@@ -521,34 +521,27 @@ def __init__(self):
521
521
except :
522
522
pass
523
523
524
+ c_dim4 = c_dim_t * 4
525
+ out = ct .c_void_p (0 )
526
+ dims = c_dim4 (10 , 10 , 1 , 1 )
527
+
524
528
# Iterate in reverse order of preference
525
529
for name in ('cpu' , 'opencl' , 'cuda' , '' ):
526
530
libnames = self .__libname (name )
527
531
for libname in libnames :
528
532
try :
529
533
ct .cdll .LoadLibrary (libname )
530
534
__name = 'unified' if name == '' else name
531
- self .__clibs [__name ] = ct .CDLL (libname )
532
- self .__name = __name
535
+ clib = ct .CDLL (libname )
536
+ self .__clibs [__name ] = clib
537
+ err = clib .af_randu (ct .pointer (out ), 4 , ct .pointer (dims ), Dtype .f32 .value )
538
+ if (err == ERR .NONE .value ):
539
+ self .__name = __name
540
+ clib .af_release_array (out )
533
541
break ;
534
542
except :
535
543
pass
536
544
537
- c_dim4 = c_dim_t * 4
538
-
539
- out = c_dim_t (0 )
540
- dims = c_dim4 (10 , 10 , 10 , 10 )
541
-
542
- for key , value in self .__clibs :
543
- err = value .af_randu (ct .pointer (out ), 4 , ct .pointer (dims ), 0 )
544
- if (err == ERR .NONE .value ):
545
- if (self .__name != key ):
546
- self .__name = key
547
- break
548
- else :
549
- self .__name = None
550
- pass
551
-
552
545
if (self .__name is None ):
553
546
raise RuntimeError ("Could not load any ArrayFire libraries.\n " + more_info_str )
554
547
0 commit comments