伙伴云客服论坛»论坛 S区 S软件开发 查看内容

0 评论

0 收藏

分享

windows下如何装置OpenCL

由于我的电脑是windows10,显卡是集显Intel® UHD Graphics 630。
下载Intel的SDK for OpenCL,下载地址https://software.intel.com/en-us/opencl-sdk/choose-download,也可以在我的资源里面直接下载
http://xiazai.jb51.net/202305/yuanma/intel_sdk_for_opencl_applications_283428.rar
windows下如何装置OpenCL-1.png

运行install.exe,装置
windows下如何装置OpenCL-2.png

运行后,假设vs翻开了需要关闭。
windows下如何装置OpenCL-3.png

默认装置途径在C:\Program Files (x86)\IntelSWTools,找到OpenCL装置位置在C:\Program Files (x86)\IntelSWTools\system_studio_2020\OpenCL
windows下如何装置OpenCL-4.png

配置环境变量,发现以及自动配置到里面了
windows下如何装置OpenCL-5.png

下载intel提供测试工具,下载地址:https://download.csdn.net/download/qq_36314864/87756581然后下载了直接运行,打印如下表示装置胜利。
windows下如何装置OpenCL-6.png

自己搭建一个OpenCL工程,创建一个C++控制台工程
windows下如何装置OpenCL-7.png

翻开配置属性,包含OpenCL的头文件,即将C:\Program Files (x86)\IntelSWTools\system_studio_2020\OpenCL\sdk\include
windows下如何装置OpenCL-8.png

添加依赖项,假设工程是x64,就在C:\Program Files (x86)\IntelSWTools\system_studio_2020\OpenCL\sdk\lib\x64下面,假设x86就依赖x86下面的
windows下如何装置OpenCL-9.png

windows下如何装置OpenCL-10.png

拷贝下面测试代码交换helloword
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cassert>
#include <CL/cl.h>
/*
* 修改自官方示例intel_ocl_caps_basic_win,用于测试手工配置项目
*/
int main()
{
    using namespace std;
    const char* required_platform_subname = "Intel";
    //函数返回值,CL_SUCCESS表示胜利
    cl_int err = CL_SUCCESS;
    // 判断返回值是否正确的宏
#define CAPSBASIC_CHECK_ERRORS(ERR)        \
    if(ERR != CL_SUCCESS)                  \
    {                                      \
    cerr                                   \
    << "OpenCL error with code " << ERR    \
    << " happened in file " << __FILE__    \
    << " at line " << __LINE__             \
    << ". Exiting...\n";                   \
    exit(1);                               \
    }
    // 遍历系统中所有OpenCL平台
    cl_uint num_of_platforms = 0;
    // 得到平台数目
    err = clGetPlatformIDs(0, 0, &num_of_platforms);
    CAPSBASIC_CHECK_ERRORS(err);
    cout << "Number of available platforms: " << num_of_platforms << endl;
    cl_platform_id* platforms = new cl_platform_id[num_of_platforms];
    // 得到所有平台的ID
    err = clGetPlatformIDs(num_of_platforms, platforms, 0);
    CAPSBASIC_CHECK_ERRORS(err);
    //列出所有平台
    cl_uint selected_platform_index = num_of_platforms;
    cout << "Platform names:\n";
    for (cl_uint i = 0; i < num_of_platforms; ++i)
    {
        size_t platform_name_length = 0;
        err = clGetPlatformInfo(
            platforms,
            CL_PLATFORM_NAME,
            0,
            0,
            &platform_name_length
        );
        CAPSBASIC_CHECK_ERRORS(err);
        // 调用两次,第一次是得到名称的长度
        char* platform_name = new char[platform_name_length];
        err = clGetPlatformInfo(
            platforms,
            CL_PLATFORM_NAME,
            platform_name_length,
            platform_name,
            NULL
        );
        CAPSBASIC_CHECK_ERRORS(err);
        cout << "    [" << i << "] " << platform_name;
        if (
            strstr(platform_name, required_platform_subname) &&
            selected_platform_index == num_of_platforms // have not selected yet
            )
        {
            cout << " [Selected]";
            selected_platform_index = i;
        }
        cout << endl;
        delete[] platform_name;
    }
    delete[] platforms;
    return 0;
}
windows下如何装置OpenCL-11.png

到此这篇关于windows下如何装置OpenCL的文章就介绍到这了,更多相关windows装置OpenCL内容请搜索网站以前的文章或继续阅读下面的相关文章希望大家以后多多支持网站!

回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

小儿上茶
注册会员
主题 21
回复 18
粉丝 0
|网站地图
快速回复 返回顶部 返回列表