Windows 使用 Intel LLVM 开发 DPC++ 程序

教程分为WSL和Windows

懒得说废话了,反正也很简单,就是记录一下而已。
感觉 Intel 的野心很大,这个基于LLVM做的编译器还支持CUDA和HIP,我觉得挺好的。
So, f**k u,NVIDIA!

WSL2 + Ubuntu

  1. 首先我们按照染念大佬的教程,装好WSL2 + ubuntu22.04 和 oneapi 环境。
  2. 去 Jetbrains Clion 的官网https://www.jetbrains.com/clion/下载Clion并安装在windows上,学生和老师是免费的,安装好后可以安装一下中文插件。
  3. 在 wsl2 ubuntu 中安装一下 build-essential 等:
sudo apt install build-essential git cmake gdb
  1. 在 Clion 中配置WSL的GCC工具链:
    设置 -> 构建、执行、部署 -> 工具链,点加号,选择WSL即可。
    在这里插入图片描述
  2. 选中WSL,点复制按钮,即可得到WSL 工具链的一份拷贝,然后我们设置一下环境:
    在这里插入图片描述
    找到这三个文件路径,填进去,大功告成!

然后我们可以写一个简单的案例运行一下:

CMake代码:

cmake_minimum_required(VERSION 3.22)
project(test)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS -fsycl)

add_executable(test main.cpp)

源代码:

#include <iostream>
#include <sycl.hpp>

int main(int argc, char** argv)
{
    // CPU device
    sycl::queue cpu(sycl::cpu_selector_v);
    std::cout << cpu.get_device().get_info<sycl::info::device::name>() << std::endl;
    
    // GPU device
    sycl::queue gpu(sycl::gpu_selector_v);
    std::cout << gpu.get_device().get_info<sycl::info::device::name>();
    
    return 0;
}

看我的运行结果:
在这里插入图片描述
哈哈i9-13900!显卡是 ARC A750,ubuntu 显示不出来,MSVC可以显示出来,不管了。

Window + Intel LLVM + Clion:

步骤很简单,安装好oenapi basekit之后,很容易就配置好Clion了,如下图所示。
在这里插入图片描述
只不过不同于Linux,我们需要链接一下SYCL,所以我们的CMakeLists.txt需要改一下:

cmake_minimum_required(VERSION 3.25)

project(test)
set(CMAKE_CXX_STANDARD 17)
add_executable(test main.cpp)
find_package(IntelSYCL REQUIRED)
if(IntelSYCL_FOUND) 
  add_sycl_to_target(TARGET test SOURCES main.cpp)
endif()

然后运行Clion:
在这里插入图片描述
哈哈哈,大功告成。但是还是有遗憾,这种方式实际上是先加载了Intel LLVM的编译环境,但是我想写一套直接的跨平台代码,代码到手之后只运行这样的命令:

mkdir build && cd build
cmake ..
make

当然了,我们也可以生成 Visual Studio 的工程,在 Visual Studio 中写代码。
首先打开 Intel 提供的 oneAPI 终端 Intel oneAPI command prompt for Intel 64 for Visual Studio 2022,然后进入我们代码的根目录中的 build 文件夹运行:

cmake -T "Intel(R) oneAPI DPC++ Compiler 2024" ..

这里告诉 CMake 使用 Intel 的编译工具链,build 里面就会有 VS 的工程了。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值