kunzmi / managedCuda

ManagedCUDA aims an easy integration of NVidia's CUDA in .net applications written in C#, Visual Basic or any other .net language.
Other
440 stars 79 forks source link

cudaOccMaxPotentialOccupancyBlockSize fails with A6000 #106

Open serjl opened 2 years ago

serjl commented 2 years ago

Hello Michael, Thanks again for a great wrapper. I have installed a new gpu card A6000 and during the run of CudaOccupancy.cudaOccMaxPotentialOccupancyBlockSize i get the following error:


Exception Unhandled ManagedCuda.CudaOccupancyException:'ErrorUnknownDevice: Requested device is not supported in current implementation or device is invalid.'


I use Cuda 11.4, then saw that the latest version of the wrapper uses Cuda 11.2 for the class CudaOccupancy, so I reinstalled to 11.2. Did not help.

Could you please advice or comment on this issue?

kunzmi commented 2 years ago

Hi,

if I haven't messed up something somewhere, managedCuda and CudaOccupancy should both be up to date with Cuda 11.4, both the Nuget package and the repository. Maybe you're just using an outdated version? What compute capability has the A6000? And when was it released? I mean, should it already be known by Cuda 11.2?

If an update to cuda 11.4 doesn't help, could you try to run cudaOccupancy from C++? I think there should be example in the CudaSamples, but even if not, it is just a simple header file, cuda_occupancy.h in cuda include folder. (just to make sure that the original code is correct)

Cheers, Michael

kunzmi commented 2 years ago

Hmm, I just checked, the cuda_occupancy.h file is identical for Cuda 11.2 and Cuda 11.4, that's why there's no update in managedCuda for 11.4 either...

serjl commented 2 years ago

Thank you a lot, NVIDIA RTX A6000 Powered by Ampere Architecture has compute capability = 8.0. I will check what you wrote above.