首先,我的ubuntu版本是18.04,cuda版本是11.1. 所以我安装的对应的aimet 框架版本是1.26.0。
其他版本也可以参照这个安装方法。
查看linux版本:
cat /proc/version
查看cuda版本:
nvidia-smi
第一步:创建虚拟环境
conda create -n aimet38 python=3.8
需要创建python =3.8 的环境。否则后续会报错。
第二步:安装AImet
链接: https://github.com/quic/aimet/releases
下载以下三个文件
1:AimetTorch-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl
2:AimetCommon-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl
3:Aimet-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl
pip install AimetCommon-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install Aimet-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install AimetCommon-torch_gpu_1.26.0-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
第三步:配置aimet_torch以及配套环境
这个时候在命令行敲pip list ,应该可以看到aimet的两个包,但是没有aimet_torch。
可以直接点击链接,下载源码https://github.com/quic/aimet/archive/refs/tags/1.26.0.zip
如果是其他版本的话,可以去github clone下源码
git clone https://github.com/quic/aimet.git
git checkout 对应的版本
对应的版本那里填入对应的名字。
有了源码之后,
1:将源码位置下TraningExtensions/torch/python里面有个aimet_torch文件夹。把这个文件夹复制到 配置的conda 环境下的site-packages文件夹下。和aimet_common在一块
2:手动配置相关环境。
需要的依赖在源码目录下的packaging/dependencies/torch-gpu下面。
cd 到 源码packaging/dependencies/torch-gpu目录下。
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -r reqs_pip_common.txt
pip install -r reqs_pip_torch_common.txt
然后,把reqs_pip_torch_gpu.txt 中的最后两行删掉。运行
pip install -r reqs_pip_torch_gpu.txt
第四步:环境设置
source (换成对应的conda环境的目录)/site-packages/aimet_common/bin/envsetup.sh
export LD_LIBRARY_PATH=(换成对应的conda环境的目录)/aimet_common/x86_64-linux-gnu:/usr/local/lib/python3.6/dist-packages/aimet_common:$LD_LIBRARY_PATH
if [[ $PYTHONPATH = "" ]]; then export PYTHONPATH=(换成对应的conda环境的目录)/aimet_common/x86_64-linux-gnu; else export PYTHONPATH=(换成对应的conda环境的目录)/aimet_common/x86_64-linux-gnu:$PYTHONPATH; fi
第五步:测试是否安装成功
进入python环境
from aimet_torch.quantsim import QuantizationSimModel
不报错就成功了。
参考: