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 :

  1. 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

  2. Xóa FindCUDA.cmake.
    cd ~/torch
    rm -fr cmake/3.6/Modules/FindCUDA*

  3. 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)