diff --git a/extra/cuda/cuda.factor b/extra/cuda/cuda.factor index 837d13c1c0..2c09fd176f 100644 --- a/extra/cuda/cuda.factor +++ b/extra/cuda/cuda.factor @@ -34,6 +34,7 @@ dim-block dim-grid shared-size stream ; '[ cuda-context set _ call ] with-cuda-context ; inline : with-cuda ( launcher quot -- ) + init-cuda [ H{ } clone cuda-memory-hashtable ] 2dip '[ _ [ cuda-launcher set ] @@ -84,5 +85,3 @@ MACRO: cuda-arguments ( c-types -- quot: ( args... function -- ) ) ] [ 2nip \ function-launcher suffix a:void function-effect ] 3bi define-declared ; - -[ init-cuda ] "cuda-init" add-startup-hook diff --git a/extra/cuda/devices/devices.factor b/extra/cuda/devices/devices.factor index de36f70280..c9117bd00c 100644 --- a/extra/cuda/devices/devices.factor +++ b/extra/cuda/devices/devices.factor @@ -7,9 +7,11 @@ sequences ; IN: cuda.devices : #cuda-devices ( -- n ) + init-cuda int [ cuDeviceGetCount cuda-error ] keep *int ; : n>cuda-device ( n -- device ) + init-cuda [ CUdevice ] dip [ cuDeviceGet cuda-error ] 2keep drop *int ; : enumerate-cuda-devices ( -- devices ) @@ -27,16 +29,19 @@ IN: cuda.devices enumerate-cuda-devices [ dup cuda-device-properties ] { } map>assoc ; : cuda-device-name ( n -- string ) + init-cuda [ 256 [ ] keep ] dip [ cuDeviceGetName cuda-error ] [ 2drop utf8 alien>string ] 3bi ; : cuda-device-capability ( n -- pair ) + init-cuda [ int int ] dip [ cuDeviceComputeCapability cuda-error ] [ drop [ *int ] bi@ ] 3bi 2array ; : cuda-device-memory ( n -- bytes ) + init-cuda [ uint ] dip [ cuDeviceTotalMem cuda-error ] [ drop *uint ] 2bi ; @@ -47,6 +52,7 @@ IN: cuda.devices [ 2drop *int ] 3bi ; : cuda-device. ( n -- ) + init-cuda { [ "Device: " write number>string print ] [ "Name: " write cuda-device-name print ] @@ -64,6 +70,7 @@ IN: cuda.devices } cleave ; : cuda. ( -- ) + init-cuda "CUDA Version: " write cuda-version number>string print nl #cuda-devices iota [ nl ] [ cuda-device. ] interleave ; diff --git a/extra/cuda/ffi/ffi.factor b/extra/cuda/ffi/ffi.factor index 3da76698c6..bcbb1ff60a 100644 --- a/extra/cuda/ffi/ffi.factor +++ b/extra/cuda/ffi/ffi.factor @@ -460,4 +460,3 @@ FUNCTION: CUresult cuGraphicsMapResources ( uint count, CUgraphicsResource* reso FUNCTION: CUresult cuGraphicsUnmapResources ( uint count, CUgraphicsResource* resources, CUstream hStream ) ; FUNCTION: CUresult cuGetExportTable ( void** ppExportTable, CUuuid* pExportTableId ) ; -