栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Ubuntu配置Intel oneAPI DPC++/C++ Compiler(icpc/icc)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu配置Intel oneAPI DPC++/C++ Compiler(icpc/icc)

Ubuntu配置Intel oneAPI DPC++/C++ Compiler(icpc/icc)
  1. 首先从Intel的官方下载
    https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp
    根据自己的OS选择即可,文件名后面带星号的为online在线安装的版本(相当于只是个下载器),这里我选择了offline即离线版本
  2. 下载完成后执行上一步下载的.sh文件,具体文件名根据你当时下到的版本改动一下,之后一路默认配置一直点next即可
sudo ./l_dpcpp-cpp-compiler_p_2022.0.2.84_offline.sh
  1. 完成安装后进入安装目录,这里根据你当前使用的用户可能安装路径有区别(如果未指定路径)
    如果是sudo用户执行的,则目录应该在./opt/intel/oneapi,而如果是普通用户则应该是在$HOME/intel/oneapi下
  2. 进入上述目录后,我们可以看到有一个名为setvars.sh的脚本,这是自动配置环境的,执行source setvars.sh intel64命令,需要注意的是如果你之后重启机器了需要再次执行该命令,网上也有如何解决source命令配置的环境如何做到写入profile一样永久效果的文章,不再赘述。如果你的机器是32位的,则后面的intel64参数可以修改为ia32
  3. 最后用一次测试用例看看是否配置成功
#include 

int main() {
  // Creating SYCL queue
  cl::sycl::queue Queue;

  // Creating buffer of 4 ints
  cl::sycl::buffer Buffer(4);

  // Size of index space for kernel
  cl::sycl::range<1> NumOfWorkItems{Buffer.get_count()};

  // Submitting command group to queue
  Queue.submit([&](cl::sycl::handler &cgh) {
    // Getting write only access to the buffer on a device
    auto Accessor = Buffer.get_access(cgh);
    // Executing kernel
    cgh.parallel_for(
        NumOfWorkItems, [=](cl::sycl::id<1> WIid) {
          // Fill buffer with indexes
          Accessor[WIid] = (cl::sycl::cl_int)WIid.get(0);
        });
  });

  // Getting read only access to the buffer on the host
  const auto HostAccessor = Buffer.get_access();

  // Check that the results are correct
  bool MismatchFound = false;
  for (size_t I = 0; I < Buffer.get_count(); ++I) {
    if (HostAccessor[I] != I) {
      std::cout << "The result is incorrect for element: " << I
                << " , expected: " << I << " , got: " << HostAccessor[I]
                << std::endl;
      MismatchFound = true;
    }
  }

  if (!MismatchFound) {
    std::cout << "The results are correct!" << std::endl;
  }

  return MismatchFound;
}

对这个代码进行编译

dpcpp simple-sycl-app.cpp -o simple-sycl-app

执行

./simple-sycl-app

如果最后结果出现The results are correct!,代表配置成功了,大功告成

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号