Omniperf下载安装与使用(基于ADM-Rocm环境)
Omniperf 下载安装与使用(基于ADM-Rocm环境)
下载
本实例的操作系统是Linux Ubantu。对于其他操作系统,需要根据情况使用shell命令行代码。
安装依赖:
Python (>=3.8)
CMake (>=3.19)
ROCm (>=5.7.1)
1.Python
下载conda环境,从conda中安装python3.8。建议直接使用python3.8,以免产生新版本不兼容的情况。使用以下代码在Linux系统中使用conda创建环境:
我的环境名是py38
可以自行更改。
conda create --name py38 python==3.8
运行Python环境:
conda activate py38
2.cmake
cmake的下载只需要从包管理器获取即可。先使用以下代码更新包管理器,再下载cmake。
使用以下代码更新apt-get
管理器:
sudo apt-get update sudo apt-get upgrade apt-get install cmake
cmake --version
查看cmake版本,确保版本>=3.19
下载安装包
从以下链接下载 Omniperf 的安装包,使用这行代码:
wget https://github.com/rocm/omniperf/releases/download/v2.0.1/omniperf-v2.0.1.tar.gz
下载好后,将安装包 omniperf-v2.0.1.tar.gz 解压到当前路径:
tar xfz omniperf-v2.0.1.tar.gz
会获得一个名叫omniperf-2.0.1的安装文件夹,进入这个文件夹(注意之后的操作都应该在这个路径下执行):
cd omniperf-2.0.1
安装
选择安装路径
我安装在根目录的/opt/omniperf/里,所以先创建好目录,并把目录权限设置为可读可写可执行(777):
sudo mkdir /opt/omniperf/ sudo chmod 777 /opt/omniperf
将安装目录暴露为环境变量,方便后面安装:
export INSTALL_DIR=/opt/omniperf/
安装python依赖
注意要在先前创建的python==3.8的环境下运行以下代码:
python3 -m pip install -t ${INSTALL_DIR}/python-libs -r requirements.txt
这行代码会在${INSTALL_DIR}/python-libs
目录下安装以下 python 库。
- astunparse==1.6.2
- colorlover
- dash>=1.12.0
- matplotlib
- numpy>=1.17.5
- pandas>=1.4.3
- pymongo
- pyyaml
- tabulate
- tqdm
- dash-svg
- dash-bootstrap-components
- kaleido
- setuptools
- plotille
通过 cmake 安装 omniperf (此时依然在omniperf-2.0.1/文件夹内)
创建cmake构建目录:
mkdir build cd build
使用 cmake 安装 Omniperf.
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/2.0.1 \ -DPYTHON_DEPS=${INSTALL_DIR}/python-libs \ -DMOD_INSTALL_PATH=${INSTALL_DIR}/modulefiles ..
如果此时报错某个库缺失,<libs> = missing
,这是因为 python 的依赖缺失,是 python 版本的问题,换 python==3.8 重来就行。若不报错,则运行下面这一行代码,安装 Ominiperf 。
make install
检查安装是否完成
检查安装文件
ls $INSTALL_DIR
这个文件夹内有以下三个文件夹,是 Omniperf 运行的依赖文件: modulefiles, 2.0.1, python-libs
先设置环境变量,我这里导出的是临时环境,因此每次打开服务器需要重复添加环境。
export PATH=$INSTALL_DIR/2.0.1/bin:$PATH export PYTHONPATH=$INSTALL_DIR/python-libs
which omniperf
检查安装路径,输出该行路径:/opt/apps/omniperf/2.0.1/bin/omniperf
omniperf --version
检查安装版本
输出:omniperf (v2.0.1)
,这样就安装完成并可以使用啦。
运行
尝试运行
这一行代码表示了运行Omniperf的指令和需要添加的参数。
omniperf profile -n vcopy_all -- ./vcopy -n 1048576 -b 256
其中vcopy_all
代表的是运行结果所在的文件夹,vcopy
是你想测试的可执行文件。运行结果会出现在当前路径下一个名为workloads/
的文件夹下,里面就有你想要的运行结果文件夹。
报错情况
若遇到报错,下面是一些典型报错的解决方案。
如果你遇到ERROR gfxXXX is not enabled in rocprofv1. Available profilers include: ['rocprofv2']
,代表这个GPU架构下你只能使用v2
的rocprof
版本,使用这一行代码给v2
版本添加临时环境变量。
export ROCPROF=rocprofv2
如果你遇到NameError: name 'Omniperf' is not defined. Did you mean: 'omniperf'?
的报错,代表着你的python环境出现问题,像之前所说,你需要进入到python==3.8的环境中,启用你创建的3.8版本环境。
conda activate py38
ui可视化
你已经运行完毕,生成的结果被放在了当前路径下的workloads
文件夹内,若需要进行ui显示,你可以找到你输出结果下的一个文件夹,这个文件夹的命名格式类似于MI300X_A1/
,表示你运行Omniperf时的GPU架构名称,这个文件夹下有你的输出结果,包含一些.txt和.scv文件。
使用以下这一行代码将你的运行结果ui可视化。注意将文件夹路径改为你的文件夹路径。
omniperf analyze -p MI300X_A1/ --gui
这一行代码会在本地映射一个8050端口,运行成功后会显示一个带端口的URL,在你的浏览器就可以访问。若你的本地8050端口被占用,你可以在 --gui
后面添加一个自定义的端口号,注意符合规范。
原文链接
(本篇将持续更新,若在使用Omniperf时遇到其他问题,欢迎在评论区留言,于2024年8月7日)
本文作者:北纬31是条纬线哦
本文链接:https://www.cnblogs.com/beiwei31/p/18344373
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步