-
Notifications
You must be signed in to change notification settings - Fork 444
cudaErrorIllegalAddress error in DeviceSelect::If() #78
Comments
Launching my app under cuda-memcheck I got following message from it:
|
After I compiled the code with -lineinfo option I got the row number: |
I finally got the working standalone project (attached) which reproduces error and get it commented. There's quite complicated logic behind the the issue, so if You have question - I'll gladly explain. |
Hi, I think the "an illegal memory access was encountered" issue is probably related to Let me know if that helps! |
Only one word: "oops". :-( |
Being still new to CUDA and CUB, I'm not quite sure it's a CUB error and not mine, but this time I did my very best to exclude all other sources.
The Setup:
the GeForce GTX 950, CUDA 8.0, CUB 1.6.4
I allocated two arrays of uint3 (15 millions each) and requested by DeviceSelect::If() 313087 bytes for temp_storage. The compare functor is modified from snippet accordingly to type:
This doesn't compile with following error:
So, I changed the declaration to
specifying both host and device for methods. This way the code compiles, but after launch of DeviceSelect::If() and cudaDeviceSynchronise() cudaPeekAtLastError() returns 77 (cudaErrorIllegalAddress). I'm pretty much sure this isn't carried from previous asynchronous calls (after every device-related call I invoke cudaDeviceSynchronise() and check cudaPeekAtLastError()), but quite in doubt where else it can come from... All the device code is executed in non-default cudaStream s, created at the very beginning.
The code snippet is:
The output is:
Can you please look into the issue and send me the right way to fix it?
The text was updated successfully, but these errors were encountered: