组装的电脑没带独立显卡,用的是CPU自带的核显,型号是Intel HD Graphics 530,关于显卡是否可以使用OpenCL,可以下载GPU-Z软件查看。

本文在Windows 10 64位系统上搭建OpenCL开发环境。

一、准备文件

将显卡驱动更新到最新版本,Windows 驱动中自动包含了OpenCL驱动,Linux系统需要另外下载OpenCL驱动。

VS2012-VS2017任意版本。

下载Intel SDK for OpenCL applications,注意选择Windows平台,然后注册帐号后即可下载。

二、测试环境

下载示例项目,解压后打开CapsBasic目录下的sln文件(高版本自动升级项目)

上一步安装正确的话VS工具栏会有如下菜单

点击[生成]-[生成解决方案],不会有错误出现。

运行结果可能如下(不同机器输出结果不同)

三、从模板新建项目

上面是直接下载别人已经配置好的项目,这里测试新建一个项目,打开VS,新建项目如下图:

添加一个新文件HelloOpenCL.cpp,在文件中添加如下代码:

#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(); \
} // 遍历系统中所有OpenCL平台
cl_uint num_of_platforms = ;
// 得到平台数目
err = clGetPlatformIDs(, , &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, );
CAPSBASIC_CHECK_ERRORS(err); //列出所有平台
cl_uint selected_platform_index = num_of_platforms; cout << "Platform names:\n"; for (cl_uint i = ; i < num_of_platforms; ++i)
{
size_t platform_name_length = ;
err = clGetPlatformInfo(
platforms[i],
CL_PLATFORM_NAME,
,
,
&platform_name_length
);
CAPSBASIC_CHECK_ERRORS(err); // 调用两次,第一次是得到名称的长度
char* platform_name = new char[platform_name_length];
err = clGetPlatformInfo(
platforms[i],
CL_PLATFORM_NAME,
platform_name_length,
platform_name, );
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 ;
}

运行结果如下:

四、后续

后续会增加GPU计算相关文章。

OpenCL入门:(一:Intel核心显卡OpenCL环境搭建)的更多相关文章

  1. Unix/Linux环境C编程入门教程(17) Gentoo LinuxCCPP开发环境搭建

    1. Gentoo Linux是一套通用的.快捷的.完全免费的Linux发行,它面向开发人员和网络职业人员.与其他发行不同的是,Gentoo Linux拥有一套先进的包管理系统叫作Portage.在B ...

  2. Unix/Linux环境C编程入门教程(9) unbntu CCPP开发环境搭建

    1.      首先启动VMware,如果没有安装,请查看前面VMware的安装视频 2 启动虚拟机向导,选择自定义 3 单击下一步 4 选择稍后安装操作系统 5 .选择unbntu 64linux ...

  3. Flutter入门教程(二)开发环境搭建

    学习Flutter,首先需要搭建好Flutter的开发环境,下面我将一步步带领大家搭建开发环境并且成功运行flutter项目. Flutter环境配置主要有这几点: 系统配置要求 Java环境 Flu ...

  4. Linux入门第一天——基本概述与环境搭建

     一.Linux简介 1.历史 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操 ...

  5. Java入门到实践系列(2)——Java环境搭建

    一.上集回顾 在<Java入门到实践系列(1)--Java简介>中提到过,Java程序是运行在Java虚拟机的,也展示过下面这张图. JDK:Java程序开发工具包. JRE:Java运行 ...

  6. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  7. spring入门(五)【springMVC环境搭建】

    springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...

  8. Hadoop入门进阶课程3--Hadoop2.X64位环境搭建

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  9. Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建

    1. Linux Mint由Linux Mint Team团队于2006年开始发行,是一份基于 这个时候linuxmint安装完成,C/C++开发环境也配置完成,希望大家认真实践!

随机推荐

  1. jquery mobile各类组件刷新方法

      1.Combobox or select dropdowns var myselect = $("#sCountry"); myselect[0].selectedIndex ...

  2. 利用maven开发springMVC项目——开发环境搭建(版本错误解决)

    申明:部分内容参见别人的博客,没有任何的商业用途,只是作为自己学习使用.(大佬博客) 一.相关环境 - eclipse :eclipse-jee-oxygen-3-win32-x86_64(下载地址) ...

  3. 更换php工具箱出现问题 CI框架的问题 【问题解决】

    2018/10/08 09:56:47 [error] 8472#8588: *1 FastCGI sent in stderr: "PHP Warning:  Unknown: open_ ...

  4. SQLIO 磁盘測试工具參考

    SQLIO 下载地址:id=20163">SQLIO Disk Subsystem Benchmark Tool 默认文件夹:C:\Program Files\SQLIO 以命令行执行 ...

  5. Machine Learning In Action

    The mind-road of "Machine Learning In Action". Read though the book totally by English!!

  6. Java并发编程(七)终结线程

    线程的状态 一个线程会有如下五个状态 1.新建:线程在被创建时会暂时处于这种状态,此时系统为线程分配资源并对其进行初始化 2.就绪:此时线程已经可以运行,只是系统没有为其分配CPU时间. 3.运行:系 ...

  7. web前端开发插件(无需重复造轮子)

    1.artdialog 对话框组件 简介:是一个基于JavaScript编写的对话框组件,他拥有精致的界面与友好的接口 文档链接:http://www.daimajiayuan.com/downloa ...

  8. MySQL----MySQL数据库入门----第一章 数据库入门

    第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...

  9. 全局变量和局部变量(global关键字)

    1.定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾. 2.函数内定义的变量就是局部变量,它的作用域为函数定义范围内. 3.函数之间存在作用域互不影响. 4.函数内访问全局变量需要 gl ...

  10. C++中一个0xC0000005访问冲突问题

    在冯.诺依曼结构CPU(如i386,ARM A8,A9)的保护模式或者哈佛结构(如8051, ARM M0,.. M3)的CPU下,C++编译器将放置常量的内存设置为只读模式或者放入只读内存中,如果出 ...