On Mittwoch 06 Januar 2010, Nicholas S-A wrote: > Hi, > > I am running into some problems converting my code over from the > 0.91/0.92 api to the new one. When I try to execute code using atomic > operations and the arch="sm_13" argument, it doesn't work, producing > the following error: > > pycuda._driver.LogicError: cuModuleLoadDataEx failed: invalid source - > > However, the actual compilation works -- I run nvcc on the code > string after saving it to a file, and it compiles fine. Any idea why it > wouldn't work in PyCUDA and works fine in nvcc?
Weird. What version of everything CUDA is involved? For 3.0, Nvidia has switched the binary format from their funny "cubin" format to ELF. If you still have the cubin format in the cache (/tmp/pycuda-compiler-cache-v1-uidNNNN/) *and* if Nvidia haven't changed their compiler version string, then PyCUDA might be trying to hand the old CUBIN stuff to the new driver, which *might* be what's behind the error message. Alternative theory: which version of NVCC is PyCUDA finding? This is my best guess. Can you try to investigate? Also try and use either http://documen.tician.de/pycuda/driver.html#pycuda.driver.module_from_buffer or http://documen.tician.de/pycuda/driver.html#pycuda.driver.module_from_file to create the module directly from nvcc's output. (Before you delete your cache (which might help), I would much appreciate it if you could try and track down why this is happening, to try and keep other users from falling into the same trap. Andreas
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ PyCUDA mailing list [email protected] http://tiker.net/mailman/listinfo/pycuda_tiker.net
