Omniperf下载安装与使用(基于ADM-Rocm环境)

Omniperf 下载安装与使用(基于ADM-Rocm环境)

下载

安装依赖:

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(>=3.19).
使用以下代码更新apt-get管理器:
sudo apt-get update

sudo apt-get upgrade

apt-get install cmake

查看cmake版本,确保版本>=3.19

cmake --version

下载安装包

从以下链接下载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库,在这里展示以下,实际上是requirements.txt文件中的库名。

  • 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重来就行。若不报错,则运行下面这一行代码,就能把Omniperf安装完成。

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),这样就安装完成并可以使用啦。

(于2024/08/06写至此,后续将更新Omniperf运行和ui可视化的内容,并附上原文档链接,敬请期待。)

运行

尝试运行

这一行代码表示了运行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安装教程

(本篇将持续更新,若在使用Omniperf时遇到其他问题,欢迎在评论区留言,于2024年8月7日)

posted @ 2024-08-06 01:26  北纬31是条纬线哦  阅读(28)  评论(0编辑  收藏  举报