OpenCL 操作context
来源:互联网 发布:python中idle是什么 编辑:程序博客网 时间:2024/06/03 07:48
本程序主要测试:
context = clCreateContext(NULL, 1, &device, NULL, NULL, &err);
创建一个context
clRetainContext(context);//Context的reference +1
clReleaseContext(context);//Context的reference -1
#include <stdio.h>#include <stdlib.h>#include <string.h>#ifdef MAC#include <OpenCL/cl.h>#else#include <CL/cl.h>#endifnamespace context_count{int run() {cl_platform_id platform;cl_device_id device;cl_context context;cl_int err;cl_uint ref_count;err = clGetPlatformIDs(1, &platform, NULL);if(err < 0) {perror("Couldn't find any platforms");exit(1);}err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);if(err == CL_DEVICE_NOT_FOUND) {err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_CPU, 1, &device, NULL);}if(err < 0) {perror("Couldn't find any devices");exit(1);}/* 创建 context */context = clCreateContext(NULL, 1, &device, NULL, NULL, &err);if(err < 0) {perror("Couldn't create a context");exit(1); }/* 获取reference count的数量,使用ref_count返回值*/err = clGetContextInfo(context, CL_CONTEXT_REFERENCE_COUNT, sizeof(ref_count), &ref_count, NULL);if(err < 0) {perror("Couldn't read the reference count.");exit(1);}printf("Initial reference count: %u\n", ref_count);/* 每次函数访问context的时候,调用clRetainContext,就是把context reference + 1,因为context并不是像platform和device那样delete的,而是clRetainContext的时候+1,当调用clReleaseContext的时候-1,当为零的时候,系统自动删除context。这就可以方便cl_context数据存活超过创建它的函数,可以让第三方库什么的继续访问context */clRetainContext(context);clRetainContext(context);clGetContextInfo(context, CL_CONTEXT_REFERENCE_COUNT, sizeof(ref_count), &ref_count, NULL);printf("Reference count: %u\n", ref_count);clReleaseContext(context);clGetContextInfo(context, CL_CONTEXT_REFERENCE_COUNT, sizeof(ref_count), &ref_count, NULL);printf("Reference count: %u\n", ref_count);clReleaseContext(context);clReleaseContext(context);system("pause");return 0;}}
1 0
- OpenCL 操作context
- OpenCL
- OpenCL
- OpenCL
- OpenCL
- opencl
- OpenCL
- OpenCL
- OpenCL
- OpenCl
- OpenCL
- 通过上下文context操作文件
- No.7_5 OpenCL 同步——原子操作
- 关于Android中Context的操作
- OpenCL: OpenCL架构
- OpenCL: OpenCL的shader
- OpenCL: OpenCL快速入门教程
- 【OpenCL】OpenCL基本概念
- 《CS:APP》 chapter 2 Representing and Manipulating Information 笔记
- open vswitch研究:vswitchd
- Linux运维第4天:Linux权限及用户管理
- 网易新闻客户端下拉刷新动画的实现
- Linux下查看文件编码,文件编码格式转换和文件名编码
- OpenCL 操作context
- Nginx下开启php-fpm的错误提示
- 自定义分页标签
- 吐槽Visual Studio 2012
- WebSphere MQ 在Windows下安装以及配置服务详解
- ubuntu 12.04设置root登录
- UML 用例图
- 键盘各键对应的ASCII码值(包括鼠标和键盘所有的键)
- Java Cache系列之Guava Cache实现详解