赞
踩
Anaconda安装:Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。使用Anaconda可以通过创建多个独立的Python环境,避免用户的Python环境安装太多不同版本依赖导致冲突。
Anaconda 是一个免费开源的 Python 和 R 语言的发行版本,用于计算科学,Anaconda 致力于简化包管理和部署。Anaconda 的包使用软件包管理系统 Conda 进行管理。Conda 是一个开源包管理系统和环境管理系统,可在 Windows、macOS 和 Linux 上运行。本文档为你介绍 Anaconda 安装方式。
首先需要在官网上选择需要安装的版本。
下载地址:https://repo.anaconda.com/archive/ 如选择当前最新版本进行安装:
https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
然后下载该安装包。
下载命令
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
#查看路径
pwd
赋权命令:
chmod +x Anaconda3-2024.02-1-Linux-x86_64.sh
安装命令:
sh Anaconda3-2024.02-1-Linux-x86_64.sh
#指定路径
# bash Anaconda3-2024.02-1-Linux-x86_64.sh -p /your/custom/path
# bash Anaconda3-2024.02-1-Linux-x86_64.sh -p /www/anaconda3
此时光标处输入目标路径即为你要自定义的安装路径了:
注意:安装完成会有一个是否初始化,这里输入 yes ,这样就不需要手动添加环境变量了:
这里需要关闭终端重新打开测试,不然是无效的:
#查看信息
conda info --envs
conda --version
参考文章:https://blog.csdn.net/sinat_39620217/article/details/115861876
在 Anaconda官网 选择下载Windows Python3.8 64-Bit版本。
确保已经安装Visual C++ Build Tools(可以在开始菜单中找到),如未安装,请点击 下载安装。
运行下载的安装包(以.exe为后辍),根据引导完成安装, 用户可自行修改安装目录(如下图)
点击Windows系统左下角的Windows图标,打开:所有程序->Anaconda3/2(64-bit)->Anaconda Prompt在命令行中执行指令即可
后续框架库包安装同linux
!!!!
先关闭终端在打开,如果Linux上成功安装anaconda后-bash: conda: command not found
如题,出现这个问题可能是环境变量配置有问题。
省流请看这里:执行cat ~/.bashrc
命令查看.bashrc
文件内容,若文件中没有export PATH="XXX/anaconda3/bin:$PATH"
说明是环境变量未配置,可以继续往下看了;若文件中有此路径,请退出本文,自行校对一下路径。
.bashrc
文件vim ~/.bashrc
export PATH="XXX/anaconda3/bin:$PATH"
esc
后输入:wq
回车)并使环境变量生效[打开文件后按i进入编辑模式,按Esc退出编辑模式,shift+冒号然后输入wq 保存文件并退出]注意:这里是anaconda的安装路径,根据自己的安装路径即可
source ~/.bashrc
执行以上三步后,便可在linux上使用conda命令了!
之前踩过小坑,不小心把Anaconda安装在系统盘了,后续导致资源不够,需要迁移
停止使用现有的Anaconda环境
:备份现有Anaconda安装
:创建目标目录
:sudo mkdir -p /www/anaconda3
注意:/dev/vdb1通常需要挂载到某个目录(如/www),如果还没有挂载,你需要先挂载它。
移动Anaconda安装
:sudo mv /root/anaconda3 /www/anaconda3
注意:这里的/root/anaconda3是你的Anaconda安装目录的示例路径,你需要替换为你实际的安装路径。
更新环境变量
:export PATH="/www/anaconda3/anaconda3/bin:$PATH"
export CONDA_PREFIX="/www/anaconda3/anaconda3"
找到并修改 shebang
:
打开 /www/anaconda3/bin/conda 文件,并找到第一行(shebang)。这通常是一个以 #!/ 开头的行,指定了用于执行该脚本的 Python 解释器。 使用文本编辑器(如 nano、vim 或 gedit)打开文件:
vim /www/anaconda3/anaconda3/bin/conda
然后,将 shebang 行的路径从 /root/anaconda3/anaconda3/bin/python 修改为 /www/anaconda3/anaconda3/bin/python。
#!/root/anaconda3/anaconda3/bin/python
#修改为
#!/www/anaconda3/anaconda3/bin/python
之后,运行source命令使更改生效。
source ~/.bashrc # 或你编辑的相应配置文件
修复虚拟环境
:
对于每个虚拟环境,你可能需要修复它们的路径。你可以使用conda命令来重新初始化虚拟环境。
conda --version #验证conda是否可用:
conda init bash
source ~/.bashrc
# 然后激活每个虚拟环境以确认它们工作正常
conda activate your_env_name
运行完 conda init 后,你可能需要重新启动你的命令行工具或者重新加载你的shell配置文件(这取决于你的shell和操作系统) 即关掉终端,再打开就可以正常激活了
其实,以上的环境变量配置,相当于在window环境下的环境变量加上环境变量。如在window环境下安装anaconda,安装过程中会提示是否将环境变量加入到path中,如果选上该选项,便可省去很多麻烦,安装完后直接在终端使用conda命令;
如果没有选上,是无法直接使用conda命令的,需要在系统的环境变量中加上安装路径才可以使用conda命令。自动添加的安装路径的步骤:此电脑–>属性–>高级系统设置–>环境变量–>系统变量–>Path添加anaconda的安装路径。
#1.创建指定python版本的环境
conda create --name paddlenlp python=3.8
#2. 激活环境
conda activate paddlenlp
#3.退出环境
conda deactivate
使用文本编辑器打开 /www/anaconda3/bin/pip 脚本(例如,使用 nano、vim 或 gedit),并检查第一行是否指向了错误的 Python 解释器路径。它应该指向 Anaconda 安装目录下的 python 可执行文件。
vim www/anaconda3/bin/pip
#修改信息
#www/anaconda3/bin/python
确认您的 conda 虚拟环境和需要安装 PaddlePaddle 的 Python 是您预期的位置,因为您计算机可能有多个 Python。进入 Anaconda 的命令行终端,输入以下指令确认 Python 位置。
输出 Python 路径的命令为:
根据您的环境,您可能需要将说明中所有命令行中的 python3 替换为具体的 Python 路径
使用以下命令确认版本
确认 Python 和 pip 是 64bit,并且处理器架构是 x86_64(或称作 x64、Intel 64、AMD64)架构。下面的第一行输出的是”64bit”,第二行输出的是”x86_64(或 x64、AMD64)” 即可:
python3 -c "import platform;print(platform.architecture()[0]);print(platform.machine())"
安装项目requirement.txt文件依赖:
pip install -r requirement.txt
生成requirement.txt文件:
pip freeze > requirements.txt
windows安装使用win下指令即可
根据版本进行安装 选择下面您要安装的 PaddlePaddle
安装完成后您可以使用 python3 进入 python 解释器,
输入import paddle ,
再输入 paddle.utils.run_check()
如果出现PaddlePaddle is installed successfully!,说明您已成功安装。
解决方案:
方案一
strings /lib64/libstdc++.so.6 | grep GLIBCXX
conda install -c conda-forge gcc=12.2.0
找到包含GLIBCXX_3.4.30的libstdc++.so.6,位于/usr/lib/x86_64-linux-gnu/,删除原链接,重新设置新软链接指向/usr/lib/x86_64-linux-gnu/libstdc++.so.6,能正常import paddle,并且utils.run_check()通过
(1)、通过下面命令查看是否已经建立过软连接
ls -l /usr/lib64/libstdc++.so*
(2)、如果没有看到自己需要的版本连接,可以通过下面命令建立软件列
ln -sf /usr/lib64/libstdc++.so.6.0.32 /usr/lib64/libstdc++.so.6
如果失败了,可以按 三、不存在 GLIBCXX_3.4.30/ 31 /32 处理办法 试一试
先执行下面的命令看下自己系统内有没有 libstdc++.so=6.0.30 / 31 / 32
ls -l /usr/lib64/libstdc++.so*
_(1)、_执行下面的命令去下载
conda install -c conda-forge libstdcxx-ng
_(2)_执行 ls -l /usr/lib64/libstdc++.so* 去查看列表中是否有 GLIBCXX_3.4.30/ 31 /32
如果有就可以进行 下面的 **2. 如果存在 libstdc++.so=6.0.30 / 31 / 32** 的内容了
(1) 挑选一个自己需要的版本复制到指定目录下
cp /data/anaconda3/lib/libstdc++.so.6.0.32 /usr/lib64/
我这里选择的是 /data/anaconda3/lib/libstdc++.so.6.0.32,复制到 /usr/lib64/ 目录下这个目录一般是固定的
(2) 复制之后执行下面命令 创建软连接
ln -sf /usr/lib64/libstdc++.so.6.0.32 /usr/lib64/libstdc++.so.6
(3) 执行成功之后,可以通过这个命令查看已经建立过的软连接
ls -l /usr/lib64/libstdc++.so*
这是输出结果,可以看到 6.0.32 已经建立了连接
(4) 可以通过下面查看列表中是否存在 GLIBCXX_3.4.30 / 31 / 32 了
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
参考链接:GCC 版本对应的 libstdc++ 库版本 - Freelancy - 博客园 (cnblogs.com)
需要注意 linstdc++.so.6 和 gcc 的版本对应关系 非常重要
GLIBCXX_3.4.30 需要 GCC 12.1.0
GLIBCXX_3.4.31 需要 GCC 13.1.0
通过这个命令可以查看系统的 gcc 版本
gcc -v
参考链接:
https://github.com/PaddlePaddle/Paddle/issues/56047
解决ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found (GLIBCXX_3.4.31 / 32也可以) 推荐优先查看这篇
方案二
这个就比较简单了,直接不安装CUDA 12.0版本的paddle,直接用11.8的安装就直接成功
对于国内用户无法连接到 Anaconda 官方源的可以按照以下命令添加清华源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
如果您的计算机没有 NVIDIA® GPU,请安装 CPU 版的 PaddlePaddle
conda install paddlepaddle==2.4.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
CUDA 10.2
,需要搭配 cuDNN 7.6.5(多卡环境下 NCCL>=2.7),安装命令为:conda install paddlepaddle-gpu==2.4.2 cudatoolkit=10.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
CUDA 11.2
,需要搭配 cuDNN 8.2.1(多卡环境下 NCCL>=2.7),安装命令为:conda install paddlepaddle-gpu==2.4.2 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
CUDA 11.6
,需要搭配 cuDNN 8.4.0(多卡环境下 NCCL>=2.7),安装命令为:conda install paddlepaddle-gpu==2.4.2 cudatoolkit=11.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
CUDA 11.7
,需要搭配 cuDNN 8.4.1(多卡环境下 NCCL>=2.7),安装命令为:conda install paddlepaddle-gpu==2.4.2 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
您可参考 NVIDIA 官方文档了解 CUDA 和 CUDNN 的安装流程和配置方法,请见 CUDA,cuDNN
pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
conda官网里有一键下载cuda版本包的命令:下载链接
如果不行请安装下述方案继续安装
其余流程参考11.8安装即可
cuda-toolkit官网链接 https://developer.nvidia.com/cuda-downloads
https://developer.nvidia.com/cuda-toolkit-archive
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
CUDA的安装文件有两种主要类型:deb文件和runfile文件。
deb文件
:deb文件是用于Debian和Ubuntu系统的软件包格式。deb文件是由NVIDIA官方提供的,可直接用于在Ubuntu上安装CUDA。deb文件利用系统的包管理器(如apt)进行安装,可以自动处理依赖关系,并将CUDA安装到系统中。
runfile文件
:runfile文件是NVIDIA CUDA官方提供的独立安装程序。它是一个自解压归档文件,其中包含CUDA的安装程序和相关文件。您可以通过运行runfile文件来手动安装CUDA,并根据需要进行配置。
需要注意的是,deb文件和runfile文件适用于不同的安装场景。如果您是一个普通用户,并且只想简单地安装CUDA并开始使用它,那么deb文件可能是更好的选择。如果您是一个高级用户,需要进行更高级的配置或需要特定版本的CUDA,则可以选择runfile文件。
vim ~/.bashrc
#插入
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#退出后
source ~/.bashrc
安装完成:输入 nvidia-smi 验证 显示
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla V100-SXM2... On | 00000000:00:08.0 Off | 0 |
| N/A 28C P0 24W / 300W | 0MiB / 32768MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
apt install nvidia-cuda-toolkit
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
参考链接:https://blog.csdn.net/peachofchangan/article/details/132674137
注:CUDA Toolkit 完整和不完整的区别:在安装了CUDA Toolkit (Pytorch)后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。
CUDA Toolkit具体组成
一般的结构中,include 包含头文件,bin 包含可执行文件,lib 包含程序实现文件编译生成的library,src包含源代码,doc或help包含文档,samples包含例子。
参考链接:https://blog.csdn.net/qq_41094058/article/details/116207333
问题描述:nvcc -V版本是11.5 ,nvidia-smi的版本是12.2
上面如果能显示版本,所以是已经有驱动,首先要删除之前的驱动:
执行以下命令,删除旧版本的驱动
sudo apt-get purge nvidia*
此时执行nvidia-smi,会提示Command ‘nvidia-smi’ not found,下面显示的是未安装显卡,按照提示安装即可(推荐自己重新安装cuda即可)
安装成功后,再次执行nvidia-smi,成功,显示cuda版本为12.2
**值得注意**
博主执行上述指令安装还是会失败,那就进入第二个环节直接按照CUDA安装教程重新安装即可
此时再次执行,nvcc -V提示,Command ‘nvcc’ not found,……,不要按照提示安装nvidia-cuda-toolkit,否则,前面的白费了,此时只需要配置环境变量:
找到cuda-toolkit安装路径!一般都在路径:/usr/local 下
可以看到,cuda-12.2是cuda-toolkit的安装文件夹,cuda文件夹是对应的软连接!
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64
export PATH=$PATH:/usr/local/cuda-12.2/bin
参考链接:https://blog.csdn.net/su_xiao_wei/article/details/133954722
CUDA Toolkit 11.2 Downloads 链接
wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
sudo sh cuda_11.2.0_460.27.04_linux.run
ubuntu环境下需额外注意:
┌──────────────────────────────────────────────────────────────────────────────┐
│ End User License Agreement │
│ -------------------------- │
│ │
│ The CUDA Toolkit End User License Agreement applies to the │
│ NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA │
│ Display Driver, NVIDIA Nsight tools (Visual Studio Edition), │
│ and the associated documentation on CUDA APIs, programming │
│ model and development tools. If you do not agree with the │
│ terms and conditions of the license agreement, then do not │
│ download or use the software. │
│ │
│ Last updated: Nov 2, 2020. │
│ │
│ │
│ Preface │
│ ------- │
│ │
│ The Software License Agreement in Chapter 1 and the Supplement │
│ in Chapter 2 contain license terms and conditions that govern │
│ the use of NVIDIA software. By accepting this agreement, you │
│──────────────────────────────────────────────────────────────────────────────│
│ Do you accept the above EULA? (accept/decline/quit): │
│ accept │
└──────────────────────────────────────────────────────────────────────────────┘
输入accept
┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Installer │
│ - [ ] Driver │
│ [ ] 460.27.04 │
│ + [X] CUDA Toolkit 11.2 │
│ [X] CUDA Samples 11.2 │
│ [X] CUDA Demo Suite 11.2 │
│ [X] CUDA Documentation 11.2 │
│ Options │
│ Install │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘
#把默认选中的driver取消选中 然后install
vim ~/.bashrc
#复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64
export PATH=$PATH:/usr/local/cuda-11.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.2
source ~/.bashrc
安装完成:输入 nvcc -V 验证 显示
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:08:53_PST_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0
安装完成后您可以使用 python3 进入 python 解释器,输入import paddle ,再输入 paddle.utils.run_check()
import paddle
paddle.utils.run_check()
如果出现PaddlePaddle is installed successfully!,说明您已成功安装。
尝试玩下面步骤,如果没效果,请重新安装一下paddle
解决办法:
cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
touch ./etc/conda/activate.d/env_vars.sh
#写入 并保存
vim ./etc/conda/activate.d/env_vars.sh
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib"
详细版
echo $CONDA_PREFIX
cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=anaconda3/envs/your_name/lib64
编辑deactivate.d/env_vars.sh,这样deactivate的时候,会恢复设置
export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
unset OLD_LD_LIBRARY_PATH
echo $CONDA_PREFIX
可以看到已经变成了anaconda3/envs/your_name/lib64。如果这个路径下的gcc已经含有了GLIBCXX_3.4.20,那么就不再会报错了。
导致的问题:升级之后libpaddle.so依赖了libssl.so1.1.1和libcrypto.so
第三方库第三方库brpc.cmake中find_package(OPENSSL)在openssl1.0.2时得到的是静态库,升级为1.1.1后得到的是动态库libssl.so,故导致libpaddle.so link了libssl.so
该问题出现在paddle2.5.1版本
* 解决方案1:
> 降低paddlepaddle的版本。亲测有效,错误libssl.so.1.1: cannot open shared object
> file: No such file or directory消失了 我用的是paddlepaddle==2.4.0
**或者使用paddle develop也可以**
当然推荐解决方案中:安装paddle-GPU /CPU 2.5.2 版本 develop是2.6.0版本了把fliud相关老的算子都删除了,跑比较老的项目会出bug。
不推荐:paddlepaddle-gpu==5.2.1.post112 别加.post112
python -m pip install paddlepaddle-gpu==2.5.2 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
硬件信息:Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 11.8 device: 0, cuDNN Version: 8.4.
* **解决方案二:**
<font color=red>解除依赖,用find_library找到libssl.a和libcrypto.a代替libssl.so和libcrypto.so</font>
解决方案中的命令行指令应该如下:首先,你需要使用find_library命令来找到libssl.a和libcrypto.a的位置。这可以通过CMake的find_library函数完成。示例代码如下:
cmake
```bash
find_library(LIBSSL_STATIC_LIBRARY NAMES ssl libssl PATHS /path/to/your/libssl)
find_library(LIBCRYPTO_STATIC_LIBRARY NAMES crypto libcrypto PATHS /path/to/your/libcrypto)
```
>上述代码将会查找并设置LIBSSL_STATIC_LIBRARY和LIBCRYPTO_STATIC_LIBRARY变量为静态库的位置。
然后,你需要链接这些静态库到你的目标库或可执行文件。在CMake中,可以使用target_link_libraries函数来完成。示例代码如下:
```bash
target_link_libraries(your_target ${LIBSSL_STATIC_LIBRARY} ${LIBCRYPTO_STATIC_LIBRARY})
```
上述代码将会把找到的libssl.a和libcrypto.a静态库链接到你的目标your_target。
>请注意替换/path/to/your/libssl和/path/to/your/libcrypto为你的实际库文件路径,并将your_target替换为你实际的目标名称。这些代码应该放在你的CMakeLists.txt文件中适当的位置。
相关错误提示:-bash: syntax error near unexpected token `LIBCRYPTO_STATIC_LIBRARY'
这个错误通常意味着在bash环境中,你尝试运行了CMake语法,而bash并不能正确解析这种语法。**LIBCRYPTO_STATIC_LIBRARY是CMake中的一个变量,如果你在bash命令行中直接运行这个变量,会导致bash无法解析并报错。**
你应该在CMakeLists.txt文件中使用这些变量,而不是直接在bash命令行中使用。如果你需要在bash命令行中查看这个变量的值,你可以使用cmake -P命令,创建一个小的CMake脚本打印这个变量的值。
例如,创建一个文件名为print_vars.cmake的文件,内容如下:
```bash
message(${LIBCRYPTO_STATIC_LIBRARY})
```
然后在bash命令行中运行以下命令:
```bash
cmake -P print_vars.cmake
```
这样就可以在bash命令行中打印出LIBCRYPTO_STATIC_LIBRARY变量的值了。记住,CMake变量和命令应该在CMake上下文中使用,而不是直接在bash命令行中使用。
参考链接:
Use the following command to download the necessary .deb package:
wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb
After downloading, you can install the package using apt-get as shown below:
sudo apt-get install ./libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb
参考链接:
NVIDIA的显卡驱动与CUDA的版本并不是严格的一一对应关系,CUDA实际上也只是一个工具包,我们可以根据自己的需求进行安装,即可以安装多个CUDA版本。同时CUDNN是一个SDK,专门用于神经网络的加速包,它与CUDA也没有严格的一一对应关系,可以选择多个版本的CUDNN进行安装。虽然说不是严格的对应,不过还是要服从大版本的对应,即安装之前查看GPU驱动版本与CUDA版本的对应关系,选择对应的版本进行安装,避免不兼容而报错的错误。
Runtime API
Runtime API是一组函数,用于在编写CUDA程序时执行核函数之前分配和释放设备上的内存、将数据从主机复制到设备并执行核函数等任务。CUDARuntime API被打包放在CUDAArt包里,其中的函数都有CUDA 前缀。CUDA运行时没有专门的初始化函数,它将在第一次调用函数时自动完成初始化。对使用运行时函数的CUDA程序测试时要避免将这段初始化的时间计入。CUDARuntime API的编程较为简洁,通常都会用这种API进行开发。
Driver API
Driver API允许开发人员更详细地控制GPU的行为,包括访问GPU硬件资源、配置GPU寄存器和指令流等。CUDA Driver API是一种基于句柄的底层接口(式多对象通过句柄被引用),可以加载二进制或汇编形式的内核函数模块,指定参数,并启动计算。CUDA Driver API的编程复杂,但有时能通过直接操作硬件的执行实行一些更加复杂的功能键,或者获得更高的性能。由于它使用的设备端代码是二进制或者汇编代码,因此可以在各种语言中调用。CUDA Driver API被放在nvCUDA包里,所有函数前缀为cu。
runtime和driver API在很多情况非常相似,也就是说用起来的效果是等价的,但是你不能混合使用这两个API,因为二者是互斥的。也就是说在开发过程中,你只能选择其中一种API。简单理解二者的区别就是:runtime是更高级的封装,开发人员用起来更方便
,而driver API更接近底层,速度可能会更快
nvidia-smi版本大于nvcc -V的版本不会有什么问题,如果版本小了,可以去官网:https://www.nvidia.cn/geforce/drivers/ 下载高版本的
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
export PATH=$PATH:/usr/local/cuda-11.8/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.8
添加完之后,需要更新配置文件
source ~/.bashrc
一般来说,单cuda直接说明版本就可以了,不需要配置其他的,但是也可以通过软链的方法把安装的版本连接过去,二者的作用是一样的,因为系统加载是靠加载bashrc文件的
sudo ln -s /usr/local/cuda-12.2 /usr/local/cuda
需要注意的是,命令行的配置也需要文件配置的基础,只是需要知道,默认情况下的配置并不带版本号,所以修改软连接有用的的原因就在于这
多版本cuda来回切换,例如从cuda12.2切换到11.2
nvcc -V
删除已经存在的软链
sudo rm -rf cuda
重新建立软链
sudo ln -s /usr/local/cuda-11.3 /usr/local/cuda
NVIDIA CUDA® 深度神经网络库 (cuDNN) 是一个 GPU 加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。
全球的深度学习研究人员和框架开发者都依赖 cuDNN 来实现高性能 GPU 加速。借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch 和 TensorFlow。
部分提示:Linux系统:CentOS7:sudo: apt-get:找不到命令”的解决方法
原因分析:这是由于CentOS的软件安装工具不是apt-get,而是yum,使用yum命令代替apt-get即可。
wget https://developer.download.nvidia.com/compute/cudnn/9.1.1/local_installers/cudnn-local-repo-ubuntu2004-9.1.1_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2004-9.1.1_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-9.1.1/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
# To install for CUDA 11, perform the above configuration but install the CUDA 11 specific package:
sudo apt-get -y install cudnn-cuda-11
#To install for CUDA 12, perform the above configuration but install the CUDA 12 specific package:
sudo apt-get -y install cudnn-cuda-12
wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz/
wget https://gosspublic.alicdn.com/ossutil/1.7.16/ossutil-v1.7.16-linux-amd64.zip
unzip ossutil-v1.7.16-linux-amd64.zip
chmod 755 ossutil-v1.7.16-linux-amd64/ossutil
cp ossutil-v1.7.16-linux-amd64/ossutil /usr/local/bin/
vim ~/.ossutilconfig
[Credentials]
language=EN
endpoint=https://oss-cn-zhangjiakou.aliyuncs.com
accessKeyID=xxx
accessKeySecret=xxxx
ossutil cp -r oss://cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz ./
tar -xf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
然后解压文件。等待解压完成后,在下载文件夹中右键打开终端。执行如下命令:
上述方案承接4.2.3.1 Linux 压缩包安装
下载后解压:tar vxf cudnn-10.1-linux-x64-v8.0.5.39.tgz
解压后得到 cuda 的文件夹,重命名为 cudnn_8.0.5, 并拷贝到/usr/local/
下:
mv cudnn-linux-x86_64-8.9.7.29_cuda11-archive cudnn_8.9.7
sudo cp -r -d root/cudnn_8.9.7 usr/local/
把 / usr/local/cudnn_8.9.7 中的内容复制到 /usr/local/cuda/include 中
sudo cp /usr/local/cudnn_8.9.7/include/* usr/local/cuda/include/
重置读写权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h
将/usr/local/cudnn__8.9.7/lib64
添加到环境变量 LD_LIBRARY_PATH 中
vim ~/.bashrc
在最后添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cudnn___8.9.7/lib64
使环境变量生效:
source ~/.bashrc
#验证cuDNN安装
from torch.backends import cudnn
print(cudnn.is_available()) #返回True说明已经安装了cuDNN
自行根据实际情况选择:ubuntu 20.04 、ubuntu 16.04 ubuntu 18.04 版本
#依次安装
sudo dpkg -i libcudnn8_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.1.1.33-1+cuda11.2_amd64.deb
# 将cuDNN例子复制到可写路径中
cp -r /usr/src/cudnn_samples_v8/ $HOME
# 转到可写路径
cd ~/cudnn_samples_v8/mnistCUDNN
# 编译文件。
sudo make clean
sudo make
# 运行样例程序。
sudo ./mnistCUDNN
如果成功运行,会显示下列信息:
bai@ubuntu:~/cudnn_samples_v8/mnistCUDNN$ sudo ./mnistCUDNN
Executing: mnistCUDNN
cudnnGetVersion() : 8101 , CUDNN_VERSION from cudnn.h : 8101 (8.1.1)
Host compiler version : GCC 9.3.0
There are 2 CUDA capable devices on your machine :
device 0 : sms 30 Capabilities 6.1, SmClock 1582.0 Mhz, MemSize (Mb) 12196, MemClock 5705.0 Mhz, Ecc=0, boardGroupID=0
device 1 : sms 30 Capabilities 6.1, SmClock 1582.0 Mhz, MemSize (Mb) 12192, MemClock 5705.0 Mhz, Ecc=0, boardGroupID=1
Using device 0
Testing single precision
Loading binary file data/conv1.bin
Loading binary file data/conv1.bias.bin
......
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 0.9999820 0.0000154 0.0000000 0.0000012 0.0000006
Result of classification: 1 3 5
Test passed!
#查看cudnn版本
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#依次安装
yum install libcudnn8-8.1.1.33-1.cuda11.2.x86_64.rpm
yum install libcudnn8-devel-8.1.1.33-1.cuda11.2.x86_64.rpm
yum install libcudnn8-samples-8.1.1.33-1.cuda11.2.x86_64.rpm
即可
切换 cudnn,准确的说切换 cudnn 的过程就是重新安装一遍 cudnn,因为 cudnn 的安装本身就是 copy 一些文件到 cuda 中,然后创建软链接。
# 解压cudnn文件
cd ~/Downloads
tar zxvf cudnn-9.0-linux-x64-v7.tgz
# 拷贝头文件
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/
# 拷贝库文件
cd cuda/lib64/
sudo cp lib* /usr/local/cuda/lib64/
# 重新建立软链接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #注意版本对应
sudo ln -s libcudnn.so.7 libcudnn.so
参考链接:https://blog.csdn.net/kuweicai/article/details/106296239
可用如下指令先查看自己已安装的cudnn
版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
去官网下载需要的 cudnn,注意要与自己的 cuda 版本以及平台相对应,我下载的是 linux 平台的对应 cuda9.0 的 7.3.1 版本的 cudnn,下载文件为 .tar 压缩包即可。
cudnn 官网网址:https://developer.nvidia.com/rdp/cudnn-archive
下载完后,拷贝到自己服务器上,并解压。
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
在解压后的文件夹(解压后的文件名一般是 cuda)中,找到 include 和 lib64 文件夹,将里边的文件拷贝到 cuda 目录中。
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
替换完成后,建立新版本 cudnn 的软链接,注意要与自己版本的链接一致
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.3.1
sudo ln -sf libcudnn.so.7.3.1 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
至此完成了 cudnn 的更换
更换完成后可查看cudnn
版本,如下图片显示的是cudnn7.3.1
版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
环境依赖
pip安装
#创建名为my_paddlenlp的环境,指定Python版本为3.8
conda create -n my_paddlenlp python=3.8
#进入my_paddlenlp环境
conda activate my_paddlenlp
#安装PaddleNLP
pip install --upgrade paddlenlp>=2.0.0rc -i https://pypi.org/simple
pip install --upgrade paddlenlp>=2.0.0rc -i https://pypi.tuna.tsinghua.edu.cn/simple
github代码会跟随开发进度不断更新:或者可通过以下命令安装最新 develop 分支代码:
pip install --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
按如上方式配置后,即可在环境中使用PaddleNLP了,命令行输入python回车后,import paddlenlp试试吧,之后再次使用都可以通过打开’所有程序->Anaconda3/2(64-bit)->Anaconda Prompt’,再执行conda activate my_paddlenlp进入环境后,即可再次使用PaddleNLP。
进入虚拟环境,查看pip安装路径
whereis pip
pip: /usr/bin/pip3.8 /etc/pip.conf /root/anaconda3/envs/paddlenlp/bin/pip
#查看pip.conf,修改成清华源,:wq 保存即可
vim /etc/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
pip isntall --use-pep517 -U paddlenlp
git clone https://github.com/PaddlePaddle/PaddleNLP.git
cd PaddleNLP
git checkout develop
如果遇到:github 报错 Failed to connect to github.com port 443:connection timed out、一般原因:电脑里开启了代理,例如开启了翻墙软件等,就会造成这个原因
取消全局代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
官方轮子下载网址:https://download.pytorch.org/whl/torch_stable.html
wget https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp311-cp311-linux_x86_64.whl
wget https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp311-cp311-linux_x86_64.whl
下载结束后使用pip install 安装包名字.whl 进行安装
pip install torchvision-0.18+cu121-cp311-cp311-linux_x86_64.whl
pip install torch-2.3.0+cu121-cp311-cp311-linux_x86_64.whl
pip list
检查安装情况、若出现版本号且输出True即为成功!
import torch
print(torch.__version__)
print(torch.cuda.is_available())
这里选择使用下载.whl安装包的形式。在这个网站上选择相应版本的torch。我选择的是第一个,即torch2.3版本+cuda11.8+python3.11,并且是linux系统的。(win_amd64指的是windows系统)
wget https://download.pytorch.org/whl/cu118/torch-2.3.0%2Bcu118-cp311-cp311-linux_x86_64.whl#sha256=4888984f292c2dfa12e49b951356c692a096a9c4790efab7fdbfc8db8cd8f13f
下载结束后使用pip install 安装包名字.whl 进行安装
pip install torch-2.3.0+cu118-cp311-cp311-linux_x86_64.whl
查询是否成功:输入python进入python环境,输入torch.__version__进行查询
import torch
print(torch.__version__)
print(torch.cuda.is_available()) #返回True则说明已经安装了cuda
#验证cuDNN安装
from torch.backends import cudnn
print(cudnn.is_available()) #返回True说明已经安装了cuDNN
安装 pytorch 需要注意 torch 与 torchvision 的版本对应,参照以下网址对照:
https://github.com/pytorch/vision
windows安装使用win下指令即可
从官网上找到适合自己版本的安装pytorch的指令 https://pytorch.org/get-started/locally/
创建虚拟环境,参考3.用 conda 创建虚拟环境
安装pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
先在以下三个网站下载需要的安装包(根据自己的驱动选择):
在conda环境下安装:
conda activate pytorch1.10.0 # 进入conda环境,这个是我之前创建好的
cd Download
pip install torchaudio-0.8.0-cp38-cp38m-linux_x86_64.whl
pip install torchvision-0.8.0-cp38-cp38m-linux_x86_64.whl
pip install torchvision-0.9.0+cu111-cp38-cp38m-linux_x86_64.whl
参考:https://blog.csdn.net/sinat_39620217/article/details/115483807
pip install torch torchvision torchaudio
根据TensorFlow 官网,我们选取CUDA11.2搭配cuDNN8.1安装,NVIDIA驱动版本尽量选460系列
conda activate tensorflow2.6.0 # 进入conda环境,这个是我之前创建好的
pip install tensorflow-gpu==2.6.0
其他加速库安装参考前面
1、输入命令:top
,显示如下
top - 17:09:22 up 12 days, 23:10, 12 users, load average: 1.69, 1.43, 1.27
Tasks: 885 total, 3 running, 877 sleeping, 4 stopped, 1 zombie
%Cpu(s): 2.9 us, 0.6 sy, 0.0 ni, 95.3 id, 1.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13150492+total, 11463488 free, 20194752 used, 99846680 buff/cache
KiB Swap: 4194300 total, 4088316 free, 105984 used. 11051801+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
65593 root 20 0 161460 6120 4368 S 1.7 0.0 2:51.34 sshd
2、输入命令:htop
,显示如下
若没有该命令,需要先安装,ubuntu 安装命令为:
sudo apt-get install htop
centos
安装命令为:
yum install htop
Linux服务器查看CPU命令:cat /proc/cpuinfo
1、输入命令: nvidia-smi
,显示如下,该命令只能显示一次。
2、实时显示
1)使用 watch 命令, 按照指定间隔刷新,例如下面命令是每隔 1s 刷新一次
watch -n 1 nvidia-smi
2)watch 每个时间周期开启一个进程 (PID),查看后关闭进程,会影响 cuda 操作,建议使用 nvidia-smi -l n 或者 nvidia-smi --loop=n,这个命令执行期间一直是一个进程 PID。例如下面命令是每隔 1s 刷新一次。
nvidia-smi -l 1
https://blog.csdn.net/sinat_39620217/article/details/131730619
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。