How you installed PyTorch (conda, pip, source): pip
Python version: 3.6
CUDA/cuDNN version: 10.1
GCC version (if compiling from source):7.4
when #include <THC/THCAtomics.cuh> in .h file and build through setup then it will have following errors:
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 1>::operator()(T, T)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:31:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:31:13: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 2>::operator()(T, T)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:54:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 4>::operator()(T, T)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:70:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 8>::operator()(T, T)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:86:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(int32_t, int32_t)': /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:104:3: error: 'atomicAdd' was not declared in this scope
atomicAdd(address, val); ^~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:104:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(c10::Half, c10::Half)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:135:5: error: 'atomicAdd' was not declared in this scope
atomicAdd(reinterpret_cast<__half>(address), val); ^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:135:5: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(reinterpret_cast<__half>(address), val); ^~~~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(c10::BFloat16, c10::BFloat16)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:152:13: error: 'atomicCAS' was not declared in this scope old = atomicCAS(address_as_ui, assumed, old);
^~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(double, double ': /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:198:3: error: 'atomicAdd' was not declared in this scope atomicAdd(address, val);
^~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:198:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(float*, float)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:202:3: error: 'atomicAdd' was not declared in this scope atomicAdd(address, val); ^~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:202:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:31:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:31:13: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 2>::operator()(T, T)':
/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:54:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 4>::operator()(T, T)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:70:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In member function 'void AtomicAddIntegerImpl<T, 8>::operator()(T, T)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:86:13: error: there are no arguments to 'atomicCAS' that depend on a template parameter, so a declaration of 'atomicCAS' must be available [-fpermissive] old = atomicCAS(address_as_ui, assumed, newval); ^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(int32_t, int32_t)': /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:104:3: error: 'atomicAdd' was not declared in this scopeatomicAdd(address, val); ^
~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:104:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(c10::Half, c10::Half)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:135:5: error: 'atomicAdd' was not declared in this scope
atomicAdd(reinterpret_cast<__half>(address), val); ^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:135:5: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(reinterpret_cast<__half>(address), val); ^~~~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(c10::BFloat16, c10::BFloat16)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:152:13: error: 'atomicCAS' was not declared in this scope old = atomicCAS(address_as_ui, assumed, old);
^
~~~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(double, double ': /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:198:3: error: 'atomicAdd' was not declared in this scope atomicAdd(address, val);^
~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:198:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh: In function 'void gpuAtomicAdd(float*, float)':/usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:202:3: error: 'atomicAdd' was not declared in this scope atomicAdd(address, val); ^~~ /usr/local/lib/python3.6/dist-packages/torch/include/THC/THCAtomics.cuh:202:3: note: suggested alternative: 'gpuAtomicAdd' atomicAdd(address, val); ^~~ gpuAtomicAdd