在 cuda 基础环境中安装完整的cupy
cd nccl/cd cupygit branchgit branch。
依赖版本参考Installation — CuPy 13.4.1 documentation
1. 安装 cupy的依赖和cupy
1.0. 创建 cuda 基础容器
export NUM=2 && \
sudo docker run --gpus all -it \
--name cupy_LHL_${NUM} \
-v /home/jimmy/ex_cupy/tmp${NUM}:/root/tmp${NUM} \
-v /home/jimmy/.ssh:/root/.ssh \
nvidia/cuda:12.6.3-devel-ubuntu22.04
1.1. 安装 python 3.10
3.12 有一点不兼容的bug。
在第0步中创建的新容器中,运行如下脚本:
apt update
apt install git wget
apt install build-essential
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev
git clone https://github.com/python/cpython.git
cd cpython/
git checkout v3.10.12
./configure \
--enable-shared \
--enable-ipv6 \
--with-ensurepip=install \
--with-system-expat \
--with-system-ffi \
--with-system-libmpdec \
--enable-loadable-sqlite-extensions \
--with-dbmliborder=bdb:gdbm \
--with-computed-gotos \
--with-ensurepip=install \
--with-fpectl \
--with-address-sanitizer \
--prefix=/usr \
--enable-optimizations
make -j
make install
/usr/local/bin/python3 --version
/usr/local/bin/pip3 --version
update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3 100
update-alternatives --config python3
echo "/usr/local/lib" | tee /etc/ld.so.conf.d/python3.conf
ldconfig
保存为 helloPython.sh
bash ./helloPython.sh
完成安装。
1.2. 安装 cutensor
Install cutensor:
wget https://developer.download.nvidia.com/compute/cutensor/redist/libcutensor/linux-x86_64/libcutensor-linux-x86_64-2.0.0.7-archive.tar.xz
tar xf libcutensor-linux-x86_64-2.0.0.7-archive.tar.xz
cd libcutensor/
cp include/* /usr/include/
cp lib/* /usr/lib/x86_64-linux-gnu/
ldconfig
保存为 helloCutensor.sh,
bash ./helloCutensor.sh
完成安装。
注:
安装最新的 cutensor,cupy 并非必须。
wget https://developer.download.nvidia.com/compute/cutensor/2.2.0/local_installers/cutensor-local-repo-ubuntu2204-2.2.0_1.0-1_amd64.deb
dpkg -i cutensor-local-repo-ubuntu2204-2.2.0_1.0-1_amd64.deb
cp /var/cutensor-local-repo-ubuntu2204-2.2.0/cutensor-*-keyring.gpg /usr/share/keyrings/
apt-get update
apt-get -y install libcutensor2 libcutensor-dev libcutensor-doc
1.3. 安装 cusparseLt
Install cusparseLt:
当前cupy新版本,对 cusparslt的版本要求比较低,0.2版本。如果安装新版本 0.7 的话,会有不兼容的函数名。
wget https://developer.download.nvidia.com/compute/libcusparse-lt/0.2.0/local_installers/libcusparse_lt-linux-x86_64-0.2.0.1.tar.gz
tar xf libcusparse_lt-linux-x86_64-0.2.0.1.tar.gz
cd libcusparse_lt
cp include/cusparseLt.h /usr/include/
cp lib64/libcusparseLt* /usr/lib/x86_64-linux-gnu/
ldconfig
保存为 helloCusparseLt.sh
bash ./helloCusparseLt.sh
完成安装。
注:
如下步骤为安装最新版本的 cusparseLt,本cupy用不到
wget https://developer.download.nvidia.com/compute/cusparselt/0.7.1/local_installers/cusparselt-local-repo-ubuntu2204-0.7.1_1.0-1_amd64.deb
sudo dpkg -i cusparselt-local-repo-ubuntu2204-0.7.1_1.0-1_amd64.deb
sudo cp /var/cusparselt-local-repo-ubuntu2204-0.7.1/cusparselt-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install libcusparselt0 libcusparselt-dev
1.4. 安装 cudnn
通过登陆 nvidia 开发者网站,预先下载文件:
cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
tar xf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive
cd include/
cp cudnn*.h /usr/local/cuda/include/
cd ../lib/
cp libcudnn* /usr/local/cuda/lib64/
chmod a+r /usr/local/cuda/include/cudnn*.h
ldconfig
pip3 install numpy
pip3 install scipy==1.14.0
pip3 install optuna==4.0.0
pip3 install setuptools
注:版本参考Installation — CuPy 13.4.1 documentation
与 cudnn-linux-xxxxx.tar.xz 同文件夹下创建 hellocudnn.sh,并运行:
bash ./hellocudnn.sh
完成安装cudnn8.
注:
下边的方式是安装最新版本的 cudnn,但是当前的 cupy 没有支持到 cudnn9,cudnn8正好,
wget https://developer.download.nvidia.com/compute/cudnn/9.10.2/local_installers/cudnn-local-repo-ubuntu2204-9.10.2_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.10.2_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.10.2/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
1.5. 安装 nccl
如果显卡是 A100,则用80;
如果是 rtx 2080,75; V100 为 70。
git clone https://github.com/NVIDIA/nccl.git
apt install build-essential devscripts debhelper fakeroot
cd nccl/
git checkout v2.25.1-1
make -j src.build NVCC_GENCODE="-gencode=arch=compute_80,code=sm_80"
make pkg.debian.build
dpkg -i build/pkg/deb/libnccl2_2.25.1-1+cuda12.6_amd64.deb
dpkg -i build/pkg/deb/libnccl-dev_2.25.1-1+cuda12.6_amd64.deb
1.6 其他依赖
sudo python -m pip install -U setuptools pip
sudo pip install numpy==2.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip install scipy==1.14.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip install optuna==4.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.7. 下载cupy 源码并安装 cupy
git clone https://github.com/cupy/cupy.git
cd cupy
git branch
git checkout v13.4.1
git branch
git submodule update --init
pip3 -v install --use-pep517 .
2. 编译 cupy的记录
pip3 -v install . 的控制台输出信息

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)