赞
踩
本系列文章汇总:
下载安装 Visual Studio 2022社区免费版:《Visual Studio 2022 版本 17.0 下载》
先只安装这两个组件吧,其他有需要的后续再加。
接下来就是漫长的等待,家里网速还行,也不用太久:
下载工具:《Intel® oneAPI IoT Toolkit v.2022》,
注意下载前如果没有Intel 账号,要先注册后才可以 下载,下载后安装:
安装完成后,有如下三个路径,各自配置就行:
cl.h
头文件目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib\oclfpga\host\include\CL
opencl.lib
目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib\oclfpga\host\windows64\lib
cl.h
头文件目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib
opencl.lib
目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\include\sycl\CL
cl.h
头文件目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib\x86
opencl.lib
目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\include\sycl\CL
建立一个空白项目
配置项目文件保存路径
添加一个cpp
源文件
进入项目属性,开始配置opencl头文件目录和依赖库目录
添加opencl
的头文件目录和库的目录:
cl.h
头文件目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib\oclfpga\host\include
opencl.lib
库目录:C:\Program Files (x86)\Intel\oneAPI\compiler\2022.0.0\windows\lib\oclfpga\host\windows64\lib
lib
库名为:OpenCL.lib
配置cl.h
头文件目录
配置opencl.lib
库目录
配置lib库名
编写测试程序
包含opencl
的头文件和库后,我们先来调用opencl
的api
查询下当前设备所有的platform info
信息,代码如下:
#include <cstdlib> #include <iostream> #include <iomanip> #include <cstring> #include <cassert> #include <CL/cl.h> using namespace std; // 检查返回值错误 #define CHECK_ERRORS(ERR) \ if(ERR != CL_SUCCESS){ \ cerr << "OpenCL error code" << ERR \ << "file: " << __FILE__ \ << "line: " << __LINE__ \ << ".\nExiting..." << endl; \ exit(1); \ } int main(int argc, const char** argv) { cl_int err = CL_SUCCESS; // 1. 获取当前设备所有支持OpenCL的平台的数量 cl_uint num_of_platforms = 0; err = clGetPlatformIDs(0, 0, &num_of_platforms); CHECK_ERRORS(err); // 2. 获取当前设备所有支持OpenCL的平台的信息 cl_platform_id* platforms = new cl_platform_id[num_of_platforms]; err = clGetPlatformIDs(num_of_platforms, platforms, 0); CHECK_ERRORS(err); cout << "平台信息:\n"; // 3. 打印平台信息 for (cl_uint i = 0; i < num_of_platforms; i++) { // 获取平台字符串的长度 size_t platform_name_length = 0; err = clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, 0, 0, &platform_name_length); CHECK_ERRORS(err); // 获取平台字符串 char* platform_name = new char[platform_name_length]; err = clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, platform_name_length, platform_name, 0); CHECK_ERRORS(err); cout << " [" << i << "] " << platform_name << endl; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。