forked from dusty-nv/jetson-containers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlink_cuda.sh
42 lines (34 loc) · 1.26 KB
/
link_cuda.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
set -ex
CUDNN_MAJOR_VERSION=9
CUDA_MAJOR_VERSION=12
CUDA_VERSION=12.6
prefix=/opt/nvidia/cudnn
arch=$(uname -m)-linux-gnu
cuda_base_path="/usr/local/cuda-${CUDA_VERSION}"
cuda_targets=${cuda_base_path}/targets/$(uname -m)-linux
rm ${cuda_base_path}/include ${cuda_base_path}/lib64
mv ${cuda_targets}/include ${cuda_base_path}/include
mv ${cuda_targets}/lib ${cuda_base_path}/lib
ln -s ${cuda_base_path}/lib ${cuda_base_path}/lib64
rm -rf ${cuda_base_path}/targets
set +x
dpkg -l | grep cudnn
mkdir -p "${prefix}"
for cudnn_file in $(dpkg -L libcudnn${CUDNN_MAJOR_VERSION}-cuda-${CUDA_MAJOR_VERSION} libcudnn${CUDNN_MAJOR_VERSION}-dev-cuda-${CUDA_MAJOR_VERSION} | sort -u); do
if [[ -f "${cudnn_file}" || -h "${cudnn_file}" ]]; then
nosysprefix="${cudnn_file#"/usr/"}"
noarchinclude="${nosysprefix/#"include/${arch}"/include}"
noverheader="${noarchinclude/%"_v${CUDNN_MAJOR_VERSION}.h"/.h}"
noarchlib="${noverheader/#"lib/${arch}"/lib}"
if [[ -d "${prefix}" ]]; then
link_name="${prefix}/${noarchlib}"
else
link_name="/usr/local/cuda/lib64/${noarchlib}"
fi
link_dir=$(dirname "${link_name}")
mkdir -p "${link_dir}"
echo "linking ${cudnn_file} -> ${link_name}"
ln -s "${cudnn_file}" "${link_name}"
fi
done