首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtCreator与英特尔OneAPI SYCL

QtCreator与英特尔OneAPI SYCL
EN

Stack Overflow用户
提问于 2022-03-31 13:37:03
回答 1查看 161关注 0票数 0

我是从OneAPI SYCL开始学习的,但我通常使用QtCreator作为我的IDE。我用CMake做了一个CMake项目,在终端和带有OneAPI扩展的VSCode中工作得很好,但是在QtCreator中没有工作。

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

下面是我编译的方式

代码语言:javascript
复制
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
代码语言:javascript
复制
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)
代码语言:javascript
复制
#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误差 QtCreator自定义编译器添加

EN

回答 1

Stack Overflow用户

发布于 2022-03-31 14:04:52

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

在Q@tCreator中模仿它的一种方法是定义一个自定义工具包。工具/选项/工具包。突出显示您使用的任何工具包,并按下“克隆”。然后,在“环境”字段中手动添加必要的环境变量。在SYCL项目中使用此工具包。如果您的问题是编译时遇到的问题,这将有效。

如果问题是在QtCreator内部运行时,在本例中查看构建/运行选项:

在这里,您可以很容易地找到更改运行时或编译时环境的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71693479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档