How to compile a dll for more than one arhcitecure?


I have developed a library and I want to be able to use it on sm_arch 1.3, 1.1 and 1.1.

How can I do that?

Actually, I compile one lib with the -arch sm10 option and one lib with -arch sm13 option, and I change the .dll in my bin folder, it’s not very user-friendly.

I use CUDA 2.3 and I can’t use 3.0 for some reasons.

Is there a more simple method than use in the reduce example in the SDK?

Thanks for any help!


Maybe just compile for 1.0 with ptx code, it may scales fine with other gpu. also you may use driver api or make 3 files with 3 kernel copies and compile each file with different compilation options.
Also you may make dll wrapper for your 3 different dlls.

Ok, thanks for your help, I will use the first option :)