i’m using CUDA 4.2 and wanted to access double-data through texture-cache using the function “__hiloint2double” (-> from C-Programming Guide) to re-interpret int2-values as double. However, i can’t find the correct header-file to include, where the mentioned function is defined, so i get:
error : identifier “__hiloint2double” is undefined
Anybody knows help?
Thanks in advance!
__hiloint2double() is a device function that can only be used inside device code. Device code must reside in a .cu (for CUDA) file. When nvcc compiles a file with that extension CUDA specific header files are included automatically. So there should be no need to manually include this file. Note that this particular device function is only available when compiling for compute capabilities that support double precision.
Please double check that you are compiling a .cu file using nvcc, and that you have specified an architecture target of at least sm13.
The prototype for __hiloint2double() can be found in the file sm_13_double_functions.h.
It was the “sm13” i missed. Does “13” mean compute capability 1.3? Well, what does it mean anyway?
Thanks for the reply!
Yes, “sm13” denotes “compute capability 1.3”. The “sm” may be a hardware-centric architecture reference related to the “streaming multiprocessor” in CUDA-capable GPUs. I simply do not recall the origins of this nomenclature, it was established many years ago (I started working on CUDA in May of 2005).
Thanks you very much for the help and explanation!