I have a problem with cuda.lib, this library return 32bit integer when should return 64bit.
Nvidia forum say that all is correct and and I'm doing something wrong
Let`s see code:
Code: Select all
Import "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64\cuda.lib"
cuInit(Flags.i)
cuDeviceGetCount(count.i)
cuDeviceGet(device.i, ordinal.i)
cuDeviceGetName(name.s,len.i,dev.i)
cuDeviceTotalMem(bytes.i,dev.i)
cuDeviceTotalMem_v2(bytes.i,dev.i) ;UNDOCUMENTED!!!
EndImport
;main
OpenConsole()
CudaDevice.i
namedev.s=Space(128)
sizebytes.i
sizebytes64.i
piattrib.i
major.i
minor.i
count.i
mp.i
cores.i
cuInit(0)
cuDeviceGetCount(@count)
If count>0
PrintN("Found "+count+" Cuda device.")
Else
PrintN("No Cuda device found.")
Input()
End
EndIf
For i=0 To count-1
cores=0
cuDeviceGet(@CudaDevice, i)
cuDeviceGetName(namedev,128,CudaDevice)
cuDeviceTotalMem(@sizebytes,CudaDevice)
cuDeviceTotalMem_v2(@sizebytes64,CudaDevice)
PrintN("Cuda device["+Str(CudaDevice)+"]:"+namedev)
PrintN("cuDeviceTotalMem:"+Str(sizebytes/1048576)+"Mb")
PrintN("cuDeviceTotalMem_v2:"+Str(sizebytes64/1048576)+"Mb")
Next i
Input()
CloseConsole()
End
So question, why nvidia say that all is ok, but documented function cuDeviceTotalMem return only 32bit integer while undocumented cuDeviceTotalMem_v2 return correct 64bit value ???