前言
没有搜到相关教程,所以自己写一篇,如有不足请指正
安装
建议直接安装完整工具包
Intel® oneAPI Base Toolkit
注意先安这个
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html
linux指令
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/992857b9-624c-45de-9701-f6445d845359/l_BaseKit_p_2023.2.0.49397_offline.sh
sudo sh ./l_BaseKit_p_2023.2.0.49397_offline.sh
Intel® oneAPI HPC Toolkit
https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0722521a-34b5-4c41-af3f-d5d14e88248d/l_HPCKit_p_2023.2.0.49440_offline.sh
sudo sh ./l_HPCKit_p_2023.2.0.49440_offline.sh
命令行
首先有一个可执行文件,可以先跑一下示例
项目地址
https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/C++/CombinationalLogic/MandelbrotOMP
把这个项目下载
配置环境
source /setvars.sh
以sudo 安装这个在/opt/intel/oneapi/下
把程序编译一下
cd MandelbrotOMP/ && make
程序分析
CPU到GPU建模
advisor --collect=offload --config=gen12_tgl --project-dir=./cpu2gpu_offload_modeling -- ./release/Mandelbrot 1
结果中会有这样几行
意思就是建议把这段代码放到gpu运行,速度为18.83倍
GPU到GPU
advisor --collect=offload --gpu --accuracy=low --project-dir=./gpu2gpu_offload_modeling -- ./src/Mandelbrot
不同精度
默认是中等精度,可以加参数改low/high
--accuracy=low
查看结果
有两种方法
html
之前的分析会有这样一行:
可以在服务器执行,文件传回主机来查看
adviser图形界面
advisor-gui ./cpu2gpu_offload_modeling
可以查看具体建议卸载的源代码
图形界面直接分析
建议直接打开图形界面
创建一个工程
选择位置,输入名字
运行程序
比如还是运算卸载分析
主要关注下面几个参数
注意这里可能需要选你使用的
点开始,就可以看到数据收集到分析的过程
中途可以暂停和取消,会分析已收集到的数据
注意运行时间过短收集不到数据,结果会为空
分析进程
适用于分析长期运行的程序,输入pid就会自动追踪,随时暂停分析程序运行中的性能
运算加速
以我的一个程序为例,一开始全在CPU运行
可以看到给出了一个建议,看一下具体代码
OK,那么我把这个循环卸载到GPU,然后再进行一次分析
可以看到没有建议卸载到GPU的了,就完成了程序的加速
当然这里主要介绍的是运算卸载,也可以进行其他评估
因为我没有intelGPU所以这一项没有输出
建议配合VTune使用,确实nice,两个工具现在都是免费的