lattice / quda

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

Usage of cudaTextureObject_t in CUB #168

Closed m-schroeck closed 10 years ago

m-schroeck commented 10 years ago

Probably it's a known issue but to keep track of it: Some of the CUB headers (which are used by ./lib/clover_invert.cu and ./lib/gauge_plaq.cu) make direct use of cudaTextureObject_t which requires compute capability 3.0, i.e., quda-0.7 is not compiling on Fermi currently.

AlexVaq commented 10 years ago

Are you sure that’s right? I developed gauge_plaq.cu on Fermi cards!!

El 29/10/2014, a las 15:52, m-schroeck notifications@github.com escribió:

Probably it's a known issue but to keep track of it: Some of the CUB headers (which are used by ./lib/clover_invert.cu and ./lib/gauge_plaq.cu) make direct use of cudaTextureObject_t which requires compute capability 3.0, i.e., quda-0.7 is not compiling on Fermi currently.

— Reply to this email directly or view it on GitHub https://github.com/lattice/quda/issues/168.

maddyscientist commented 10 years ago

I suspect this is a CUDA version issue. Which CUDA version do you have?

Sent from my iPhone

This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by

reply email and destroy all copies of the original message.

m-schroeck commented 10 years ago

On the PLX machine in Cineca with CUDA 4.2.9 and Tesla Fermi cards I get the error:

/cineca/prod/compilers/cuda/4.2.9/none//bin/nvcc -O3 -D__COMPUTE_CAPABILITY__=200 -ftz=true -prec-div=false -prec-sqrt=false -w -DMULTI_GPU -DGPU_WILSON_DIRAC -DGPU_TWISTED_MASS_DIRAC -DGPU_WILSON_DIRAC -DGPU_NDEG_TWISTED_MASS_DIRAC -DGPU_TWISTED_MASS_DIRAC -DGPU_WILSON_DIRAC -DGPU_DIRECT -DBUILD_QDP_INTERFACE -DBUILD_QDPJIT_INTERFACE -DDEVICE_PACK -DNUMA_AFFINITY -arch=sm_20 -I/cineca/prod/compilers/cuda/4.2.9/none//include -DMPI_COMMS -I/cineca/prod/compilers/openmpi/1.6.5/gnu--4.5.2//include -I../include -Idslash_core -I. gauge_plaq.cu -c -o gauge_plaq.o ../include/cub/iterator/tex_obj_input_iterator.cuh(148): error: identifier "cudaTextureObject_t" is undefined

Wasn't cudaTextureObject_t only introduced for Kepler?

AlexVaq commented 10 years ago

CUDA 4…

El 29/10/2014, a las 15:58, m-schroeck notifications@github.com escribió:

On the PLX machine in Cineca with CUDA 4.2.9 and Tesla Fermi cards I get the error:

/cineca/prod/compilers/cuda/4.2.9/none//bin/nvcc -O3 -D__COMPUTE_CAPABILITY__=200 -ftz=true -prec-div=false -prec-sqrt=false -w -DMULTI_GPU -DGPU_WILSON_DIRAC -DGPU_TWISTED_MASS_DIRAC -DGPU_WILSON_DIRAC -DGPU_NDEG_TWISTED_MASS_DIRAC -DGPU_TWISTED_MASS_DIRAC -DGPU_WILSON_DIRAC -DGPU_DIRECT -DBUILD_QDP_INTERFACE -DBUILD_QDPJIT_INTERFACE -DDEVICE_PACK -DNUMA_AFFINITY -arch=sm_20 -I/cineca/prod/compilers/cuda/4.2.9/none//include -DMPI_COMMS -I/cineca/prod/compilers/openmpi/1.6.5/gnu--4.5.2//include -I../include -Idslash_core -I. gauge_plaq.cu -c -o gauge_plaq.o ../include/cub/iterator/tex_obj_input_iterator.cuh(148): error: identifier "cudaTextureObject_t" is undefined

Wasn't cudaTextureObject_t only introduced for Kepler?

— Reply to this email directly or view it on GitHub https://github.com/lattice/quda/issues/168#issuecomment-60938600.

maddyscientist commented 10 years ago

cub needs a newer version of CUDA (5.0 and upwards I believe). The error is related to CUDA version.

This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by

reply email and destroy all copies of the original message.

m-schroeck commented 10 years ago

Ok, thanks for the info. Maybe it could be useful to have a switch for excluding cub when compiling with CUDA < 5.0.

AlexVaq commented 10 years ago

Ok, thanks for the info. Maybe it could be useful to have a switch for excluding cub when compiling with CUDA < 5.0.

As far as I understand it (and Mike, or anyone else, correct me if I’m wrong), the way we are using cub we can’t exclude it without rewriting a large chunk of the code. So I feel the easiest way here is to update to CUDA 5 or higher.=

m-schroeck commented 10 years ago

I agree that it would be a good idea to update CUDA but obviously I'm not in the position to do that on PLX (which is an older machine but still useful with its 548 Fermi Teslas). By enforcing CUDA >= 5.0 you might exclude several such elderly machines. I think that's an issue.

AlexVaq commented 10 years ago

But CUDA >= 5.0 works like charm with Fermi cards. Actually I mostly work with Fermi cards, and I use CUDA 5.0 or 5.5.

m-schroeck commented 10 years ago

Well, I will try to contact the support team in Cineca... Thanks for your help!

maddyscientist commented 10 years ago

All the way up to CUDA 6.0 is supported on all CUDA cards ever built.

Sent from my iPhone

On Oct 29, 2014, at 8:28, "m-schroeck" notifications@github.com<mailto:notifications@github.com> wrote:

Well, I will try to contact the support team in Cineca... Thanks for your help!

Reply to this email directly or view it on GitHubhttps://github.com/lattice/quda/issues/168#issuecomment-60944424.


This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by

reply email and destroy all copies of the original message.

AlexVaq commented 10 years ago

Since I think I’ll get an account on Cineca soon, I’ll also push for that.=

maddyscientist commented 10 years ago

Closing this, since this is not a bug.