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架构下你只能使用v2rocprof版本,使用这一行代码给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日)

本文作者:北纬31是条纬线哦

本文链接:https://www.cnblogs.com/beiwei31/p/18344373

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   北纬31是条纬线哦  阅读(75)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 If 丁可
If - 丁可
00:00 / 00:00
An audio error has occurred.

I came your danger soul 我靠近你危险的灵魂

Think so you'll say hello 想着你会主动打招呼

Breaking you find to go 忽然你想要转身离去

Break down you might be lone 黯然神伤或许你也会孤独吧

Angel you down thinking 天使如你可否冷静思虑

Think so you freaking down 还以为你会不药而愈

Say hi to send you go 一声问候就让你安心离开

Break down you might be lone 黯然神伤或许你也会孤独吧

And you know you saying to go 你自顾自洒脱的离去

Breaking down I find to go 终于遍体鳞伤的我选择离开

I can't down to soul 怎敢抚慰那深至灵魂的痛

You don't know I love you so 却不知这份爱的深沉

Angel now you think so 我的爱人事到如今你还会这样想吧

Don't freak the danger soul 是我不该诱惑你危险不安的灵魂吧

Breaking I find to go 终于遍体鳞伤的我选择离开

Break down you might be lone 黯然神伤或许你也会孤独吧

And you know you saying to go 你自顾自洒脱的离去

You don't know I love you so 却不知这份爱的深沉

Breaking down you trying to go 伤痕累累你试图不告而别

I can't down to soul 怎敢抚慰那深至灵魂的痛

And you know you trying to go 你自顾自洒脱的离去

You don't know I love you so 却不知这份爱的深沉

Breaking down you trying to go 伤痕累累你试图不告而别

I can't down to soul 怎敢抚慰那深至灵魂的痛