Closed AlexeyAB closed 11 years ago
Thank you for a clever template programming ! The only problem is that nvcc now asks for /bigobj flag and doesn't allow me to precompile strings.obj file(I get an error if I tried to link a precompiled strings.obj) . I can compile it by including strings.cu on a command line like this :
nvcc --compiler-options /bigobj --compiler-options /MD -O3 -arch=sm_20 -lcuda -lcudpp64 -lcudpp_hash64 -o alenka merge.obj MurmurHash2_64.obj filter.obj strings.cu select.obj zone_map.obj itoa.obj atof.obj cm.obj bison.obj
But compiling strings.cu every time when I need to build alenka executable takes a lot of time. So if you know how to make nvcc accept a precompiled with /bigobj file strings.obj - let me know.
Best regards,
Anton
I use MSVS2010 + CUDA5.0 and I have no problems with the building and linking of the object files, created with /bigobj. If you have problems with large files and with the speed of compilation - the best solution is to place functions in different translation units. This will increase the speed of compilation and will motivate to the new changes.
In the new commit i commented out one of the functions for GROUP BY, which is unused now. Now compiler does not require use /bigobj.
If this feature will be need or will necessary to increase the UNROLL_COUNT, it is proposed to go through the increase of translation units and to scatter functions across them.
Automatic code-generation and definition strings lengths from 1 to 25, done through the unrolling the templated functor. Added additional comparison in struct Str and template parameter - the type of character of string.