SDB:安装 oneAPI
英特尔产品将提供在这些架构上部署应用程序和解决方案所需的工具。其一套互补的工具包——一个基本工具包和专业插件——简化了编程,并帮助开发人员提高效率和创新。核心 Intel oneAPI DPC++ 编译器和库实现了在 https://www.oneapi.com/open-source/ 上提供的 oneAPI 行业规范。
亮点
- DPC++ 兼容性工具是一个迁移引擎,可将 CUDA* 代码转换为基于标准的 DPC++ 代码。
- 数据并行 C++ (DPC++) 是 ISO C++ 的开放式、基于标准的演进,它融合了 Khronos SYCL* 和社区扩展,以简化数据并行编程。
- 专为端到端机器学习和数据科学设计。
- 强大的库——包括深度学习、数学以及视频和媒体处理。
要求
CPU 处理器要求
基于以下 Intel® 64 架构的系统均受支持,可用作主机和目标平台。
- Intel® Core™ 处理器系列或更高版本
- Intel® Xeon® 处理器系列
- Intel® Xeon® Scalable 处理器系列
加速器的要求
- 集成 GEN9(及更高版本)GPU。有关详细信息,请参阅 Intel® Graphics Compiler for OpenCL™ 中的源代码。
- FPGA 卡:请参阅 Intel(R) DPC++ 编译器系统要求。
磁盘空间要求
- 标准安装时至少需要 3.3 GB 的磁盘空间。
- 注意:在安装过程中,安装程序可能需要最多 6 GB 的额外临时磁盘存储空间来管理下载和中间安装文件。
内存要求
- 建议使用 8 GB RAM
软件包要求
安装 CMake*、pkg-config 和 GNU* 开发工具以构建示例。虽然 CMake 和 pkg-config 构建工具不是 oneAPI 工具和工具包所必需的,但许多 oneAPI 示例都作为 CMake 项目提供,需要 CMake 才能构建它们。在某些情况下,pkg-config 对于定位完成应用程序构建所需的库是必要的。
Intel 编译器利用现有的 GNU 构建工具链来提供完整的 C/C++ 开发环境。如果您的 Linux 发行版不包含完整的 GNU 开发工具套件,则需要安装这些工具。要在您的 Linux 系统上安装 CMake、pkg-config 和 GNU 开发工具,请打开一个终端会话并输入以下命令
$ sudo zypper ref $ sudo zypper --non-interactive install cmake pkg-config $ sudo zypper --non-interactive install pattern devel_C_C++
使用以下命令显示安装位置以验证安装:
$ which cmake pkg-config make gcc g++
将显示其中一个或多个位置
/usr/bin/cmake /usr/bin/pkg-config /usr/bin/make /usr/bin/gcc /usr/bin/g++
安装:Zypper 仓库说明
英特尔通过公共 Zypper 仓库提供对其所有 oneAPI 工具包和软件包的访问权限。Zypper 是一种命令行软件包管理器,它提供仓库访问、依赖关系解决、软件包安装等功能,适用于 openSUSE* 和 SUSE* Linux* Enterprise。请参阅以下说明,了解如何获取英特尔工具的最新版本。
如果您有来自旧版本的现有 oneAPI 安装,请使用“zypper rm <packages>”删除旧安装。例如
sudo -E zypper rm intel-hpckit intel-basekit intel-oneapi*
使用以下命令添加 Intel oneAPI 仓库公钥:
sudo zypper addrepo https://yum.repos.intel.com/oneapi oneAPI
通过添加此新仓库,Zypper 自动导入了公共仓库密钥。在某些情况下,rpm 可能需要通过以下方式显式导入密钥:
rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
安装所需的软件包。确定您需要的 Intel® oneAPI 工具包或软件包。本页顶部有一个软件包表。如果您在公司内网或防火墙后,请确保设置 http_proxy 和 https_proxy 环境变量,以便 yum 可以使用 https 协议访问仓库服务器。要安装一个工具包,例如 Intel® oneAPI 基本工具包,元软件包名称为“intel-basekit”,可以使用以下命令进行安装:
sudo zypper install intel-basekit
禁用 Hangcheck
本节仅适用于在原生环境中具有长时间运行 GPU 计算工作负载的应用程序。不建议用于虚拟化或其他 GPU 的标准用法,例如游戏。
GPU 硬件执行超过四秒钟的工作负载被认为是长时间运行的工作负载。默认情况下,被视为长时间运行工作负载的单个线程会被认为已挂起并被终止。禁用 hangcheck 超时期限可以避免此问题。
注意:如果系统重新启动,hangcheck 将自动启用。您必须在每次重新启动后禁用 hangcheck,或者按照以下说明永久禁用 hangcheck(跨多次重新启动)。
要禁用直到下次重新启动的 hangcheck:
sudo sh -c "echo N> /sys/module/i915/parameters/enable_hangcheck"
要跨多次重新启动禁用 hangcheck:
打开一个终端并运行此命令:
Append i915.enable_hangcheck=0 to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub Run sudo update-grub
重新启动系统。Hangcheck 将保持禁用状态。
使用命令行构建和运行示例项目
设置用于 CLI 开发的环境变量
对于在命令行界面 (CLI) 上工作,oneAPI 工具包中的工具通过环境变量进行配置。通过获取 setvars 脚本来设置您的 CLI 环境:
选项 1:每次会话获取 setvars.sh 一次
每次打开新终端时获取 setvars.sh:您可以在 oneAPI 安装的根文件夹中找到 setvars.sh 脚本,通常为 /opt/intel/oneapi/(如果以 root 或 sudo 安装)和 ~/intel/oneapi/(如果未以超级用户身份安装)。如果您自定义了安装文件夹,则 setvars.sh 位于您的自定义文件夹中。
source /opt/intel/oneapi/setvars.sh :: initializing oneAPI environment ... :: intelpython -- latest :: vtune -- latest :: daal -- latest :: dev-utilities -- latest :: tbb -- latest :: dnnl -- latest :: compiler -- latest :: advisor -- latest :: debugger -- latest :: ccl -- latest :: ippcp -- latest :: dpcpp-ct -- latest :: vpl -- latest :: mpi -- latest :: mkl -- latest :: ipp -- latest :: oneAPI environment initialized ::
选项 2:setvars.sh 一次性设置
要为您的项目自动设置环境,请在启动脚本中包含命令 source install_dir>/setvars.sh,该脚本将在启动时自动调用(将 <install_dir> 替换为您的 oneAPI 安装路径)。
例如,您可以将 source <install_dir>/setvars.sh 命令添加到您的 ~/.bashrc 或 ~/.bashrc_profile 或 ~/.profile 文件中。要为系统上的所有帐户永久设置设置,请在系统的 /etc/profile.d/ 文件夹中创建一个单行 .sh 脚本,该脚本获取 setvars.sh(有关详细信息,请参阅 /etc/profile.d/)。setvars.sh 脚本也可以使用配置文件进行管理。
在同一个终端中,运行该应用程序(它应该在您的 PATH 中):
$ oneapi-cli
oneAPI CLI 菜单出现
- 使用向上和向下箭头键选择 创建项目,然后按 Enter
- 选择您示例的语言。对于您的第一个项目,选择 cpp,然后按 Enter。工具包示例列表出现。
- 选择 向量加法 示例。向量加法是一个简单的测试应用程序,将帮助您验证工具是否已正确设置并可以访问您的系统 GPU
- 选择示例后,按 Enter。
- 输入绝对路径或相对路径以创建您的项目。提供一个目录和项目名称。项目名称是您在上一步骤中选择的示例的名称。
- 按 Tab 键选择创建,然后按 Enter
目录路径打印在创建按钮下方。
现在,导航到 makefile 所在的位置。如果项目中没有 makefile,请参阅以下部分,了解如何使用 CMake 创建带有 makefile 的项目,您可以使用它来运行设计。使用 Make 构建程序。
cd vector-add make all dpcpp -O2 -g -std=c++17 -o vector-add-buffers src/vector-add-buffers.cpp
最后运行程序。
make run ./vector-add-buffers Running on device: Intel(R) Gen9 HD Graphics NEO Vector size: 10000 [0]: 0 + 0 = 0 [1]: 1 + 1 = 2 [2]: 2 + 2 = 4 ... [9999]: 9999 + 9999 = 19998 Vector add successfully completed on device.
要了解 Makefile 中使用的命令,请参阅 Intel® oneAPI 编程指南。
此文本由官方 oneAPI 创新者英特尔和 openSUSE 成员 Alessandro de Oliveira Faria 基于英特尔教程构建。有关更多信息,请参阅官方页面 此处




