Linux
查看Unbuntu版本
lsb_release -a
uname -a
cat /proc/version
用户管理
useradd [-m 建立用户目录][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
user=NAME
useradd $user -d /home/$user -g HwHiAiUser; cp -r /etc/skel/. /home/$user/
useradd -m -s /bin/bash $user; usermod -g HwHiAiUser $user
useradd -m -s /bin/bash -g HwHiAiUser $user
chown -R $user:HwHiAiUser /home/$user/
passwd $user
# 修改用户组
usermod -a -G HwHiAiUser $user
useradd通过命令添加用户,adduser在Ubuntu上通过交互式命令添加用户,Centos上两者没区别。
Linux 使用 adduser 与 useradd 添加普通用户
CentOS
清除yum缓存:
yum clean all
# 可选清除缓存,rm -rf /var/cache/yum/*
增删改yum源后,重新构建缓存:
yum makecache
yum源在官方CentOS源的基础上,可配置EPEL(Extra Packages for Enterprise Linux)源,或安装Software collections(即centos-release-scl,具有持续更新的软件包)。
无网络情况下,配置本地源,如配置EulerOS-2.0SP8源:
yum_path=/etc/yum.repos.d/euleros_aarch64.repo
echo "[base]" > ${yum_path}
echo "name=EulerOS-2.0SP8 base" >> ${yum_path}
echo "baseurl=MIRROR.DOMAIN/euler/2.8/os/aarch64/" >> ${yum_path}
echo "enabled=1" >> ${yum_path}
echo "gpgcheck=1" >> ${yum_path}
echo "gpgkey=MIRROR.DOMAIN/euler/2.8/os/aarch64/RPM-GPG-KEY-EulerOS" >> ${yum_path}
安装GCC/G++,若yum无法安装最新版本,则通过SCL安装
yum install devtoolset-7
ln -s /opt/rh/devtoolset-7/root/usr/include/c++/7 /usr/include/c++/7
source /opt/rh/devtoolset-7/enable # 可将该行写入.bashrc
# 设置默认CC、CXX编译器
export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-7/root/usr/bin/g++
CentOS C++开发环境配置,仅供参考,有部分错误。
SSH
SSH登录很卡,关闭selinux(重启生效),Arm系统默认是打开的:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
/usr/sbin/sestatus -v
设置ssh不断开:
sed -i "s/^export TMOUT.*/export TMOUT=0/g" /etc/profile
sed -i "s/.*ClientAliveInterval.*/ClientAliveInterval=600/g" /etc/ssh/sshd_config
sed -i "s/.*ClientAliveCountMax.*/ClientAliveCountMax=300/g" /etc/ssh/sshd_config
service sshd restart
export TMOUT=0
rsync传输文件,支持断点续传、增量同步,优于scp
:
# DIR1被拷贝到DIR2下
rsync -av SRC/DIR1 USER@IP:/DEST/DIR2/
# DIR1下的文件/目录被拷贝到DIR2下
rsync -av SRC/DIR1/ USER@IP:/DEST/DIR2/
端口放开
新装系统默认开启了防火墙,可以放开端口:
# 永久放开
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
# 临时放开
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
iptables -I INPUT -p tcp --dport 1080 -j ACCEPT
查看进程
ps
仅能查看进程启动命令的相对路径。启动一个进程时,在/proc/
目录下会生成以进程号命名的文件夹,里面有多个文件记录了进程的详细信息:
-
cwd
软链接是进程运行目录; -
exe
软链接是执行程序的绝对路径; -
cmdline
文件记录了命令行命令; -
environ
文件记录了运行时的环境变量; -
fd
目录保存了使用文件的软连接。
删除进程
批量删除/杀死CMD中包含KEYWORD(如train.py
)的进程:
kill -9 `ps -ef | grep <KEYWORD> | awk '{print $2}' `
在上述要求的基础上排除root
进程:
ps -ef | grep <KEYWORD> | grep -v root | awk '{print $2}' | xargs kill -9
其中:
-
awk
的作用是输出某一列,{print $2}
就是输出第二列,如上为pid
列。 -
grep -v
的作用是排除某个字符,如上排除了root用户的命令。 -
xargs
从前面的命令获取输出作为参数来执行下一个命令。
硬盘管理
查看目录所在硬盘空间信息
df -lh /home/
Linux中查看硬盘信息 (daemon369.github.io)
查看块设备,不带参数时列出所有硬盘,根节点代表硬盘,二级节点代表磁盘上的分区。使用-d
选项只列出硬盘,不列出分区。
lsblk [-d]
统计行数
统计代码行数:
wc -l `find . -name '*.go'`
其中,-l 参数是统计行数,find . -name *.go
是查找当前目录(包含子目录)下所有的go
文件。
# 得到文件数目
find . -name '*.py' | wc -l
116
# 得到每个文件的行数及所有文件的行数
find . -name '*.py' | xargs wc -l
43 ./dcama_mask_queryloss/check_coco_path.py
18762 total
常用命令
zip -qr html.zip /home/html
Linux 软连接,不要在目录最后加/
。软连接实际是字符串映射,源路径(已存在)会被当作字符串,路径不存在也不会报错。源路径请用绝对路径,或在目标(软连接)所在父目录下能访问的路径。目标路径可相对/绝对,父路径不存在会报错,文件/目录已存在则失败(无提示)。
# ln [参数][源文件或目录][目标文件或目录]
ln -s /PATH/TO/data /home/USER/data
# 删除软连接
rm /home/USER/data
# 修改软连接
ln -s /PATH/TO/new_data /home/USER/data
Bash历史管理。
# 全部清除
history -c
# 删除某行
history -d <行号>
# 修改文件
vim ~/.bash_history
# 修改文件后需刷新缓存
history -r
rsync
同步文件到本地,中断后本地文件夹/文件无法删除,提示没有权限。可使用空文件夹/小文件覆盖,然后删除。可能要注意原命令里文件夹是否带有/
,保持一致,否则可能失败。
rsync -rtv --delete USER@HOST:EMPTY_FOLDER DEL_FOLDER
?
sed -i "s/\r//" install.sh
系统代理
在打开的终端窗口里配置,仅在当前窗口有效,关闭后失效。
# no_proxy为例外,非必须
export no_proxy="127.0.0.1, localhost"
export http_proxy="http://[USER:PASSWORD@]PROXY.DOMAIN:PORT"
export https_proxy="http://[USER:PASSWORD@]PROXY.DOMAIN:PORT"
SSL
OpenSSL 3.0.0a:软件库
SSLv3/SSL3:协议,Secure Sockets Layer
TLSv:协议,After SSLv3, SSL was renamed to TLS. Transport Layer Security and started with TLSv1.0 which is an upgraded version of SSLv3.
Ubuntu系统安装证书:
添加证书:
复制pem格式的根证书,重命名为 .crt
格式。然后执行下边的命令
$sudo cp 证书路径.crt /usr/local/share/ca-certificates`
$sudo update-ca-certificates
update-ca-certificates
命令将PEM格式的根证书内容附加到/etc/ssl/certs/ca-certificates.crt
,而/etc/ssl/certs/ca-certificates.crt
包含了系统自带的各种可信根证书。
删除证书:
$sudo rm -f /usr/local/share/ca-certificates/证书名称.crt
$sudo update-ca-certificates
IDE
远程开发
- Windows本地IDE,如PyCharm, CLion, VScode,配置远程开发环境。
- Linux服务器IDE,如PyCharm, CLion,已解压安装到
programs
。启动示例pycharm xxx/
或./pycharm/bin/pycharm.sh xxx/
(需X11,可安装MobaXterm获取)。简单但仅支持同时一个设备运行。
免密登录
PyCharm、VScode均适用:vscode 使用pem文件免密连接服务器_vscode如何配置ssh的。pem-CSDN博客,免密/私钥连接。
./ssh/config
Host 10.x.x.x
HostName 10.x.x.x
Port 22
User USER
IdentityFile ~/.ssh/XXX.pem
VSCode插件不兼容
- Download extension
- Unzip it as zip
- In extensions/package.json change "engines"."vscode" to compatible vscode version
- Zip extension folder
- Change zipped extension name from "extension.zip" to "extension.vsix"
- Install "extension.vsix" to vscode via "Install from VSIX..."
Conda
Miniconda — Conda documentation
配置国内镜像源:
新建环境:
# 查看环境
conda env list
# 或
conda info --envs
# 新建环境
conda create -n NAME pyton=3.9 # ==锁死小版本3.9.0,=不锁死小版本3.9.x
# 或拷贝已有环境,节省下载时间
conda create -n NEW --clone OLD
如果是非联网环境,可以通过打包并拷贝conda环境的方式,拷贝到相同目录后conda可以自动识别。要求绝对路径相同,如其他机器的同样用户名下的conda环境/root/miniconda3/envs
。
激活环境:
# 在base或某个conda环境下
conda activate ENV
# 若未在某个conda环境下
source ~/miniconda3/bin/activate ENV
设置代理:
# 配置(注意对特殊字符做URL Encode)
conda config --set proxy_servers.http http://[USER:PASSWORD@]PROXY.DOMAIN:PORT
conda config --set proxy_servers.https http://[USER:PASSWORD@]PROXY.DOMAIN:PORT
conda config --set ssl_verify false
# 删除
conda config --remove-key proxy_servers
# 查看
conda config --show proxy_servers
删除环境:
# 删除环境及所有包
conda remove -n ENV --all
conda安装环境时,可能会安装CUDA-Toolkit之类的库在~/miniconda3/lib
下,部分程序可能默认访问/usr/local/cuda/lib64/
下的库文件,导致报错,例如:
ImportError: torch/lib/libtorch_cuda_cpp.so: symbol cudaGraphRetainUserObject version libcudart.so.11.0 not defined in file libcudart.so.11.0 with link time reference
可以手动设置export LD_LIBRARY_PATH=~/miniconda3/lib/:$LD_LIBRARY_PATH
解决问题。
如遇到CondaHTTPError: HTTP 000 CONNECTION FAILED
,通常是网络不稳定,可在conda配置中删除channels, default_channels
项,或者修改custom_channels项。目前发现:
- 安装包
conda install XXX
,使用阿里源可行。 - 将错误信息里的包链接
XXX.tar.bz2
手动下载之后,执行conda install xxx.tar.bz2
进行安装,然后重新执行原安装命令,安装依赖项。不推荐,会丢失来源。
如果在conda create ENV
时遇到如下错误,可在conda配置中删除channels, default_channels
项,因为镜像源可能不适合用于创建环境,使用默认的pkgs能解决。
Collecting package metadata (current_repodata.json): failed
UnavailableInvalidChannel: The channel is not accessible or is invalid.
channel name: anaconda/pkgs/main
channel url: http://mirrors.aliyun.com/anaconda/pkgs/main
error code: 403
如果遇到如下索引错误,通常是因为缓存中的索引文件因异常中断导致格式错误,可以使用conda clean -i
清除索引缓存。
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
ERROR conda.auxlib.logz:stringify(163): Expecting value: line 1 column 1 (char 0)
如果遇到如下包安全检查错误,通常是因为通过不同方式安装了相同的包,手动删除路径对应的tar包和目录即可。
SafetyError: The package for xxx located at /home/xxx/anaconda/...
appears to be corrupted. The path ...
has an incorrect size.
reported size: 7680 bytes
actual size: 5695 bytes
Python
# 配置清华源
pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
# 删除配置
pip config unset global.index-url
pip config unset global.trusted-host
# 查看配置
pip config list
安装whl文件
pip install xxx.whl
# 卸载
pip uninstall xxx
源码安装库
cd xxx
python setup.py install
# 卸载
pip uninstall xxx
源码安装Python
cd Python-3.7.5
./configure --prefix=/root/miniconda3/envs/ci --enable-shared
make -j72
make install -j72
./configure --prefix=/root/miniconda3/envs/ci
make -j72
make install -j72
Jupyter
后台运行Jupyter,log会输出到nohup.out
。
nohup jupyter lab --ip=10.175.105.195 --port=1080 --allow-root &
CMake
支持非root用户安装:
- 在Download | CMake页面找到“Binary distributions”,下载对应版本
.sh
文件,在希望安装的目录执行文件sh XXX.sh
,根据提示完成安装。或者下载对应的压缩包,解压希望安装的目录。 - 修改
.bashrc
,将安装目录下的bin/
所在路径添加到PATH
环境变量里,source .bashrc
或者重新打开终端窗口。 - 检查安装版本
cmake --version
。
Make
OpenCV
官网:Home - OpenCV
安装:OpenCV: Installation in Linux
支持非root用户安装,配置CMAKE_INSTALL_PREFIX
:
# 从Github或者官网下载:[Releases - OpenCV](https://opencv.org/releases/)
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
unzip opencv.zip
# Create build directory
mkdir -p build && cd build
# Configure
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=$HOME/programs/opencv/ ..
# Build,或者make -j4,通过nproc命令查询线程数
cmake --build . -j4
# Install,将include目录和lib目录拷贝到`CMAKE_INSTALL_PREFIX`
# 如果不拷贝到系统目录,则无需sudo
sudo make install
CUDA支持,WITH_CUDA=ON, OPENCV_DNN_CUDA=ON
。OpenCV 4.0之后所有CUDA加速库被移到opencv_contrib下,需要将opencv和opencv_contrib一起build,即增加配置OPENCV_EXTRA_MODULES_PATH
。
# build with all modules in opencv_contrib
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ../opencv
# build with one of opencv_contrib modules
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/cudaarithm ../opencv
# 示例
cmake .. -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=$HOME/programs/opencv/ \
-D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D WITH_CUBLAS=1 -D WITH_CUFFT=ON -D WITH_NVCUVID=ON \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.5/modules/
# 可选指定,未指定时自动识别
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.3.3 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so
TensorRT
若使用root权限使用apt-get/yum安装,请下载deb/rpm包,否则请下载tar包,NVIDIA TensorRT 8.x Download。
安装方法参考官方Install Guide,含deb、rpm、tar包等安装方法。
安装Boost
参考官网安装指导,支持非root用户安装,支持安装部分lib。在页面前部Get Boost获取源码下载链接,下载并解压,执行:
cd path/to/boost_1_82_0
./bootstrap.sh --prefix=$HOME/programs/boost_1_82_0/
./b2 install
安装GoogleTest/gtest
参考官方仓库使用指导,通常无需安装,直接下载源码,然后将源码集成到C++工程中。如需安装,下载源码,执行:
cd googletest # Main directory of the cloned repository.
mkdir build # Create a directory to hold the build output.
cd build
# Configure, Generate native build scripts for GoogleTest。 GoogleMock可选关闭。
cmake .. [-DBUILD_GMOCK=OFF] -D CMAKE_INSTALL_PREFIX=$HOME/programs/googletest/
# Build,或者make -j4,通过nproc命令查询线程数
cmake --build . -j4
# Install,将include目录和lib目录拷贝到`CMAKE_INSTALL_PREFIX`
# 如果不拷贝到系统目录,则无需sudo
sudo make install
C++编译器
GCC/G++,Clang/LLVM。
《CMake Best Practice》第 2 章笔记
将include目录添加到C/C++头文件搜索路径里:
export C_INCLUDE_PATH=/opt/rh/devtoolset-11/root/usr/include/c++/11
export CPLUS_INCLUDE_PATH=/opt/rh/devtoolset-11/root/usr/include/c++/11
在Ubuntu 22.04中安装Clang
sudo apt-get install libclang-14-dev clang-14
提示:libclang.so一般位于
/usr/lib/x86-linux-gnu/libclang-10.so
。
在CentOS 7.6中安装Clang
yum install centos-release-scl-rh
yum install llvm-toolset-7.0-clang
# 使Clang在当前Session生效
source /opt/rh/llvm-toolset-7.0/enable
# 可选,修改.bashrc便于Clang自动生效
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
配置环境变量。为防止后续Clang无法自动找到头文件,建议添加如下环境变量。
export CPLUS_INCLUDE_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64/clang/7.0.1/include
提示:libclang.so一般位于
/opt/rh/llvm-toolset-7.0/root/usr/lib64/libclang.so.7
。
在SLES 12.5中安装Clang
sudo zypper install libclang7 clang7-devel
配置环境变量。为防止后续Clang无法自动找到头文件,建议添加如下环境变量。
export CPLUS_INCLUDE_PATH=/usr/lib64/clang/7.0.1/include
提示:libclang.so一般位于
/usr/lib64/libclang.so
。
Clang
安装Clang预编译包
# 使用`uname -m`可获取机器硬件架构,例如返回`x86_64`
# 使用`cat /etc/os-release`可获取系统名称、版本等信息
NAME=`cat /etc/os-release | awk -F= '{if ($1=="NAME") print $2}'`
VERSION_ID=`cat /etc/os-release | awk -F= '{if ($1=="VERSION_ID") print $2}'`
if [ "$NAME" == '"Ubuntu"' ];then
# 在Ubuntu 22.04中安装Clang
if [ $VERSION_ID == '"22.04"' ];then
sudo apt-get install libclang-14-dev clang-14
else
# 在Ubuntu 18.04中安装Clang
sudo apt-get install libclang-10-dev clang-10
fi
elif [ "$NAME" == '"CentOS Linux"' ];then
# 在CentOS 7.6中安装Clang
yum install centos-release-scl-rh
yum install llvm-toolset-7.0-clang
ENABLE="source /opt/rh/llvm-toolset-7.0/enable"
CPLUS_INCLUDE_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64/clang/7.0.1/include
# 可选,修改.bashrc便于Clang自动生效
echo $ENABLE >> ~/.bashrc
# 配置环境变量。为防止后续Clang无法自动找到头文件,建议添加如下环境变量。
echo "export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> ~/.bashrc
elif [ "$NAME" == '"SLES"' ];then
# 在SLES 12.5中安装Clang
sudo zypper install libclang7 clang7-devel
CPLUS_INCLUDE_PATH=/usr/lib64/clang/7.0.1/include
export $CPLUS_INCLUDE_PATH
echo "export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> ~/.bashrc
else
echo "Warning: $NAME is not supported automatic installation of Clang, Please install it manually."
fi
# 必须通过`source`或`.`执行脚本,其中的环境变量才会在当前bash生效
# 新建bash也可以使环境变量立即生效
bash
源码编译安装Clang
如果无法通过上述方法或者包管理工具安装Clang>=6.0.0,可以在LLVM Release页面尝试
下载对应平台的安装包。如果以上方法都不可行,则可以通过源码编译安装LLVM和Clang,详细安装指导参考
Getting Started with the LLVM System。编译LLVM依赖一些软件包,
需用户提前确保依赖满足,或者自行手动安装依赖。下表列出了这些依赖,“包名”列是LLVM所依赖的软件包通常的名称,
“版本”列是“可以工作“的软件包版本,“说明”列描述了LLVM如何使用这个软件包。
包名 | 版本 | 说明 |
---|---|---|
CMake | >=3.20.0 | 生成Makefile/workspace |
GCC | >=7.1.0 | C/C++编译器 |
zlib | >=1.2.3.4 | 压缩/解压功能 |
GNU Make | 3.79, 3.79.1 | 编译Makefile/build |
下面以Clang7.0.0为例编译安装LLVM和Clang。
获取源码。通过Git获取源码,包括LLVM和Clang子工程,切换到对应版本。
git clone https://github.com/llvm/llvm-project.git
git checkout llvmorg-7.0.0
或者直接下载对应版本的源码zip包。
wget https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-7.0.0.zip
# 如果没有安装wget,可以采用curl
curl -o llvmorg-7.0.0.zip https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-7.0.0.zip
# 解压得到llvm-project-llvmorg-7.0.0目录
unzip -q llvmorg-7.0.0.zip
编译和安装LLVM和Clang。
cd llvm-project-llvmorg-7.0.0/; mkdir build; cd build
# 建议不开启libcxx;libcxxabi,使用默认的gcc/g++配套的libstdc++
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang" -G "Unix Makefiles" ../llvm
make -j32 # 将32换成小于所在机器CPU线程数的数字,或者去除数字,自动设定
make install # 安装到默认位置/usr/local/lib/
配置环境变量。为防止后续Clang无法自动找到头文件,建议添加如下环境变量。
export CPLUS_INCLUDE_PATH=/usr/local/lib/clang/7.0.0/include
提示:libclang.so一般位于
/usr/local/lib/libclang.so
。
CUDA
CUDA官网见CUDA Toolkit - Free Tools and Training | NVIDIA Developer,包含下载、发行说明、安装指导和文档。三方教程见保姆级安装NVIDIA CUDA、CUDNN。
CUDA Toolkit与Toolkit Driver版本配套关系,参见CUDA 12.2 Release Notes,包括:
- CUDA Toolkit and Minimum Required Driver Version for CUDA Minor Version Compatibility
- Using a Minimum Required Version that is different from Toolkit Driver Version could be allowed in compatibility mode – please read the CUDA Compatibility Guide for details.
- CUDA Toolkit and Corresponding Driver Versions
- For convenience, the NVIDIA driver is installed as part of the CUDA Toolkit installation. Note that this driver is for development purposes and is not recommended for use in production with Tesla GPUs.
从CUDA 11开始,各个组件分别设置版本。
安装流程为:
- 下载CUDA Toolkit 12.2 Update 1 Downloads
- 安装:先安装CUDA Driver,再安装CUDA Tookit
- 配置环境变量
安装指导见:
- CUDA Quick Start Guide:简略。优先推荐。
- NVIDIA CUDA Installation Guide for Linux:详细。
- Meta Package/Package Manager :RPM/Deb/Conda包,本身很小但是依赖多个包,适合打包安装,支持自动升级。新手推荐。
Rust
在 Windows 上针对 Rust 设置开发环境 | Microsoft Learn
VSCode插件:Rust with Visual Studio Code
配置Rustup镜像源
配置Crates镜像源
.cargo/config配置示例
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
[source.tsinghua]
registry = "sparse+http://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
[http]
check-revoke = false
参考资料:
Apex
File "G:\Anaconda3\envs\xyy_imagenaire\lib\site-packages\apex\optimizers\fused_adam.py", line 80, in init
raise RuntimeError('apex.optimizers.FusedAdam requires cuda extensions')
RuntimeError: apex.optimizers.FusedAdam requires cuda extensions
参考:Issue #1193。This is because of apex cannot import amp_C,you can check the file "G:\Anaconda3\envs\xyy_imagenaire\lib\site-packages\apex\optimizers\fused_adam.py", also you can use your python shell to verify this:
import torch
import amp_C # must import torch before import amp_C
Maybe you can get error like: libstdc++.so.6: version 'GLIBCXX_3.4.20' not found'
, If so, you can try the following commands:
conda install libgcc
export LD_LIBRARY_PATH=/path/to/anaconda/envs/myenv/lib:$LD_LIBRARY_PATH
cd /path/to/anaconda/envs/myenv/lib
ln -s libstdc++.so.6.0.30 libstdc++.so.6
And you can add export LD_LIBRARY_PATH=/path/to/anaconda/envs/myenv/lib:$LD_LIBRARY_PATH
to ~/.bashrc file.
Libaio
编译安装libaio-0.3.113,支持非root用户。