nicolasprevot / GpuShareSat

Source code for GpuShareSat, a library for SAT solvers to use the GPU for clause sharing between CPU threads.
Other
32 stars 1 forks source link

Compilation issue on older cards: architecture was missing somehow #3

Closed msoos closed 3 years ago

msoos commented 3 years ago

Hi,

This has caused me a 4h debugging session :D Apparently, the CUFLAGS = [...] -arch=sm_${SMVER} needs to be included into the Makefile under gpu or it won't work :( It basically will compile to some arbitrary (latest) arch version, which may or may not be compatible with what's in the machine. The error message it throws without this is very cryptic:

soos@vvv-dejavu:gpu$ ./glucose-gpu mizh-md5-47-3.cnf 
c
c This is glucose-gpu 1.0 --  based on MiniSAT (Many thanks to MiniSAT team)
c
c Setting block count guideline to 6 (twice the number of multiprocessors)
kernel_error in "/home/soos/development/sat_solvers/gpu-share-sat/gpu/Helper.cu":104: invalid device function
glucose-gpu: /home/soos/development/sat_solvers/gpu-share-sat/gpu/Helper.cu:28: void exitIfError(cudaError_t, const char*): Assertion `false' failed.
Aborted (core dumped)

I actually struggled with this on Saturday&Sunday :cry: I thought it was something to do with my weird GPU setup (I won't even go into details, but... it's a painful Thinkpad multi-GPU system)

Anyway, I have fixed it already but for next time, let's try to make sure this is surely included, or we'll be in for some more pain :D

Mate

msoos commented 3 years ago

OK, scheduled on the cluster. I will let you know how it's going. In case I bump into an issue, and it seems cluster-related I'll file a support ticket to the cluster maintainers. In the meanwhile, let's try to resolve #1 so I know how it's supposed to run in case it fails to run on the cluster :)

I'm really looking forward to doing large-scale runs!

Mate