Hi các bạn, ở bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Torch và cách làm sao để Torch làm việc với Cuda 10.0
In the terminal, run the commands WITHOUT sudo
git clone https://github.com/torch/distro.git ~/torch –recursive
cd ~/torch
bash install-deps
Ở bước này các bạn có thể gõ :
./install.sh để cài đặt, nhưng nó chỉ làm việc với cuda 5.0
Vì vậy, nếu muốn làm việc với cuda 10.0, bạn sẽ làm thêm những bước sau đây :
-
Install the latest CMake from github repo (the latest FindCUDA.cmake will be installed)
sudo apt-get purge cmake
git clone https://github.com/Kitware/CMake.git
cd CMake
./bootstrap
make && sudo make install -
Xóa FindCUDA.cmake.
cd ~/torch
rm -fr cmake/3.6/Modules/FindCUDA* -
Vá lối (patch) cho cutorch
diff –git a/lib/THC/THCAtomics.cuh b/lib/THC/THCAtomics.cuh
index 400875c..ccb7a1c 100644
— a/lib/THC/THCAtomics.cuh
+++ b/lib/THC/THCAtomics.cuh
@@ -94,6 +94,7 @@ static inline device void atomicAdd(long *address, long val) {
}
#ifdef CUDA_HALF_TENSOR
+#if !(CUDA_ARCH >= 700 || !defined(CUDA_ARCH) )
static inline device void atomicAdd(half *address, half val) {
unsigned int * address_as_ui =
(unsigned int *) ((char *)address - ((size_t)address & 2));
@@ -117,6 +118,7 @@ static inline device void atomicAdd(half *address, half val) {
} while (assumed != old);
}
#endif
+#endif
cd extra/cutorch
cat > atomic.patch
patch -p1 < atomic.patch
4. Build
./clean.sh
export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
./install.sh 5. Install Cudnn
git clone https://github.com/soumith/cudnn.torch -b R7
cd cudnn.torch
luarocks make cudnn-scm-1.rockspec
[Source](https://github.com/torch/cutorch/issues/834)