Closed maddyscientist closed 10 years ago
I'm working on this now. I have decided to adopt a fairly straightforward approach, that can be improved upon later if needed. To avoid clashes between constants and textures in different files we can inline the same constant and texture definitions into different files and use a different namespace in each to avoid clashes. It requires a little bit of work, but nothing major.
Closed with commit 3bfcdccf76be7e4729fd8438361df5c108db8295
CUDA 5.0 will have a separate device linker, this will allow us to put all the kernels in dslash_quda.cu (e.g., dslash, force, link fattening) into separate files since the constants and textures will not have to be at file scope. I propose that for QUDA 0.5 we modularize the library in this fashion. The only drawback is that this will require Fermi and upwards, which excludes Tesla architecture. By the time we get round to this though, this will likely not be an issue.
This benefit of this is that the kernel building can be done in parallel which will make the build process much faster.