lattice / quda

QUDA is a library for performing calculations in lattice QCD on GPUs.
https://lattice.github.io/quda
Other
286 stars 94 forks source link

Current QUDA master has a test that isn't compiled or compilable #76

Closed maddyscientist closed 12 years ago

maddyscientist commented 12 years ago

The tests directory has a unitarize_link_test.cpp file which is not compiled unless specifically targeted from the command line. Moreover it fails to compile:

mclark@nvsocal1:~/github/quda/tests$ make unitarize_link_test mpicxx -Wall -O3 -DPOINTER_SIZE=8 -D__COMPUTE_CAPABILITY__=300 -DOVERLAP_COMMS -DGPU_FATLINK -DGPU_UNITARIZE -DGPU_GAUGE_FORCE -DGPU_FERMION_FORCE -DGPU_HISQ_FORCE -DGPU_DIRECT -DNUMA_AFFINITY -I/usr/local/cuda-4.2/include -I../include -I. unitarize_link_test.cpp -c -o unitarize_link_test.o unitarize_link_test.cpp: In function ‘int unitarize_link_test()’: unitarize_link_test.cpp:80:3: error: ‘hisq’ has not been declared unitarize_link_test.cpp:90:18: error: ‘QudaGaugeParam’ has no member named ‘flag’ unitarize_link_test.cpp:98:18: error: ‘QudaGaugeParam’ has no member named ‘flag’ unitarize_link_test.cpp:158:3: error: ‘hisq’ has not been declared unitarize_link_test.cpp:165:3: error: ‘hisq’ has not been declared unitarize_link_test.cpp:176:3: error: ‘hisq’ has not been declared unitarize_linktest.cpp: In function ‘int main(int, char*)’: unitarize_link_test.cpp:247:5: warning: unknown conversion type character 0xa in format [-Wformat] unitarize_link_test.cpp: At global scope: unitarize_link_test.cpp:28:12: warning: ‘verify_results’ defined but not used [-Wunused-variable] unitarize_link_test.cpp:38:13: warning: ‘checkunitarization’ defined but not used [-Wunused-variable] make: ** [unitarize_link_test.o] Error 1

Is this a left-over development test that should be deleted?

jpfoley commented 12 years ago

There's a little more too this than I thought. I hadn't looked at the hisq-specific internal tests since before the codefest in Salt Lake. It turns out that a couple of the hisq test programs are out of date. Some of the changes to the library have not propagated to the test programs, and two of the tests need to be generalised to run on multiple GPUs. Shouldn't be too difficult, probably easiest to scrap the old test code and start fresh.

jpfoley commented 12 years ago

I've updated the internal unitarisation tests. unitarize_links_test.cpp tests the unitarisation routine itself, and hisq_unitarize_force_test.cpp checks that the unitarization contribution to the hisq fermion force is the same on the CPU and the GPU. Both tests now compile and run on multiple GPUs. They're far from perfect, but get the job done. Closing this issue.