intel-oneapi开发必备:openEuler环境下的DPC++编译器与MKL库使用教程
intel-oneapi开发必备openEuler环境下的DPC编译器与MKL库使用教程【免费下载链接】intel-oneapioneAPI openEuler portal for maintaining the oneAPI projects项目地址: https://gitcode.com/openeuler/intel-oneapi前往项目官网免费下载https://ar.openeuler.org/ar/openEuler / intel-oneapi项目是openEuler生态中维护oneAPI项目的门户为开发者提供了在openEuler系统上使用DPC编译器和MKL库等oneAPI工具的完整支持帮助开发者轻松构建跨架构的高性能应用。一、oneAPI简介跨架构编程的终极解决方案 oneAPI是由Intel开发的开放、基于标准的编程模型旨在简化跨不同计算架构包括CPU、GPU、FPGA和其他加速器的编程过程。通过统一的编程模型开发者可以实现更快的应用性能、更高的生产力和更大的创新空间。从架构图中可以清晰看到oneAPI包含Direct Programming如Data Parallel C和API-Based Programming如oneMKL、oneDPL等库两大部分下方通过Level Zero接口等与CPU、GPU等不同类型的硬件交互实现了跨架构的统一编程。二、准备工作搭建openEuler环境oneAPI框架在openEuler环境中的集成基于openEuler 24.03 LTS SP1及后续版本确保你的系统满足这一前提条件。三、一键安装oneAPI底层依赖包Intel Arch SIG已将oneAPI所需的底层包集成到openEuler 24.03 LTS SP1中可直接通过以下命令安装$ sudo dnf -y install intel-gmmlib intel-gsc intel-igc-cm intel-igc-core \ intel-igc-opencl intel-level-zero-gpu intel-ocloc intel-opencl \ level-zero libmetee安装完成后openEuler上的oneAPI运行环境将支持在Intel CPU、GPU等硬件上运行oneAPI应用。四、快速配置安装oneAPI工具包4.1 添加oneAPI仓库通过以下命令配置Intel官方发布的rpm包仓库$ tee /tmp/oneAPI.repo EOF [oneAPI] nameIntel® oneAPI repository baseurlhttps://yum.repos.intel.com/oneapi enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB EOF$ sudo mv /tmp/oneAPI.repo /etc/yum.repos.d $ sudo dnf update4.2 安装核心工具包安装构建oneAPI应用所需的oneAPI Base Toolkit包括DPC编译器和MKL库等$ sudo dnf install -y intel-oneapi-dpcpp-cpp-2024.2-2024.2.1-1079 intel-oneapi-mkl-devel-2024.2.1-103 intel-oneapi-ccl-devel-2021.13.1-314.3 验证安装结果执行以下命令检查安装结果和硬件信息$ source /opt/intel/oneapi/setvars.sh $ sycl-ls若安装成功将显示系统中的CPU、GPU等设备信息例如[opencl:cpu][opencl:0] Intel(R) OpenCL, 11th Gen Intel(R) Core(TM) i9-11900K 3.50GHz OpenCL 3.0 (Build 0) [2024.18.7.0.11_160000] [opencl:gpu][opencl:1] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A770 Graphics OpenCL 3.0 NEO [23.30.26918.50] ...五、实战演练构建并运行oneAPI示例5.1 配置环境路径链接所需工具链并添加环境路径$ sudo ln -s /usr/lib/gcc/x86_64-openEuler-linux/12/* /usr/lib64/ $ export CPATH$CPATH:/usr/include/c/12/:/usr/include/c/12/x86_64-openEuler-linux/ $ export LD_LIBRARY_PATH/opt/intel/oneapi/2024.0/lib:$LD_LIBRARY_PATH5.2 编译运行向量加法示例$ git clone https://gitcode.com/openeuler/intel-oneapi $ cd oneAPI-samples/DirectProgramming/CSYCL/DenseLinearAlgebra/vector-add/ $ mkdir build cd build cmake .. $ make $ ./vector-add-buffers成功运行后将输出类似以下结果Running on device: Intel(R) Arc(TM) A770 Graphics Vector size: 10000 [0]: 0 0 0 [1]: 1 1 2 ... Vector add successfully completed on device.六、扩展应用安装Intel Extension for PyTorch若需在PyTorch中利用oneAPI加速可安装Intel Extension for PyTorch$ python3 -m pip install torch2.3.1cxx11.abi torchvision0.18.1cxx11.abi torchaudio2.3.1cxx11.abi \ intel-extension-for-pytorch2.3.110xpu oneccl_bind_pt2.3.100xpu \ --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/ $ python3 -m pip install transformers4.33.0可通过简单的健全性测试检查安装是否正确$ export OCL_ICD_VENDORS/etc/OpenCL/vendors $ python3 -c import torch; import intel_extension_for_pytorch as ipex; print(torch.__version__); print(ipex.__version__); [print(f[{i}]: {torch.xpu.get_device_properties(i)}) for i in range(torch.xpu.device_count())];七、总结通过本教程你已掌握在openEuler环境下安装和使用DPC编译器与MKL库的方法。oneAPI为开发者提供了强大的跨架构编程能力结合openEuler稳定的操作系统环境可助力你开发出高性能的应用程序。更多详细信息可参考项目中的getting_started.md和README.md。【免费下载链接】intel-oneapioneAPI openEuler portal for maintaining the oneAPI projects项目地址: https://gitcode.com/openeuler/intel-oneapi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考