【问题标题】:QtCreator with Intel OneAPI SYCLQtCreator 与英特尔 OneAPI SYCL
【发布时间】:2022-12-23 06:00:16
【问题描述】:

我从 OneAPI SYCL 开始学习,但我通常使用 QtCreator 作为我的 IDE。我用 CMake 做了一个 HelloSYCL 项目,在终端和带有 OneAPI 扩展的 VSCode 中也能正常工作,但在 QtCreator 中不起作用。

每次我想使用 SYCL 时,我都需要使用“./opt/intel/oneapi/setvars.sh”启动 ONEAPI 环境,但我不知道如何使用 QtCreator

这是我编译的方式

mkdir build; cd build
cmake -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -G Ninja -S .. -DCMAKE_PREFIX_PATH="/opt/intel/oneapi/compiler/latest/linux/cmake/SYCL/" -DSYCL_INCLUDE_DIR=/opt/intel/oneapi/compiler/latest/linux/include/sycl -DSYCL_LIBRARY_DIR=/opt/intel/oneapi/compiler/latest/linux/lib

cmake_minimum_required(VERSION 3.22)

project(testSYCL LANGUAGES CXX)

if(UNIX)
  set(CMAKE_C_COMPILER icx)
  set(CMAKE_CXX_COMPILER dpcpp)
endif(UNIX)

list(APPEND CMAKE_MODULE_PATH "/opt/intel/oneapi/compiler/2021.4.0/linux/")
list(APPEND CMAKE_MODULE_PATH "/opt/intel/oneapi/compiler/2021.4.0/linux/cmake/SYCL/")
find_package(IntelDPCPP REQUIRED)

set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if (NOT CMAKE_BUILD_TYPE)
    message(STATUS "No build type selected, default to Release")
    set(CMAKE_BUILD_TYPE "Release" CACHE PATH "Build Type" FORCE)
endif()

add_executable(testSYCL main.cpp)

#include <iostream>
#include <iomanip>

#include <CL/sycl.hpp>

int main()
{
    for ( const auto& plataform : sycl::platform::get_platforms() ) {
        std::cout << "=========================================================\n";
        std::cout << std::setw(25);
        std::cout << plataform.get_info<sycl::info::platform::name>() << "\n"; 
        std::cout << plataform.get_info<sycl::info::platform::vendor>() << "\n"; 
        std::cout << "Plataform: " << plataform.get_info<sycl::info::platform::version>() << "\n"; 
        
        for ( const auto& device : plataform.get_devices() ) {
            std::cout << "Devices\n";
            std::cout << "Name: " << device.get_info<sycl::info::device::name>() << "\n";
            std::cout << "Max Compute Units: " << device.get_info<sycl::info::device::max_compute_units>() << "\n";
            std::cout << "Max Work Group Size: " << device.get_info<sycl::info::device::max_work_group_size>() << "\n";
            std::cout << "Max Clock Frequency: " << device.get_info<sycl::info::device::max_clock_frequency>() << " MHz \n";
        }
    }
}

QtCreator CMake Error QtCreator Custom Compiler added

【问题讨论】:

    标签: c++ c++17 qt-creator intel-oneapi sycl


    【解决方案1】:

    答案取决于setvars.sh的内容。我假设这是一个简单的脚本设置环境变量。

    在 QtCreator 中模仿它的一种方法是定义自定义工具包。 转到工具/选项/套件。突出显示您使用的任何套件,然后按“克隆”。然后,在“环境”字段中手动添加必要的环境变量。将此套件用于您的 SYCL 项目。如果您的问题是由编译器错误引起的,这将起作用。

    如果在 QtCreator 中运行程序时出现问题,请查看build/running options

    在那里您可以轻松找到更改运行时或编译时环境的选项

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2011-10-31
    相关资源
    最近更新 更多