OpenCL支持从C编程语言派生而来的多种数据类型,大致可以分为两类,标量和向量。

标量基本上是元素值,向量是元素值的集合。

OpenCL变量整型数据类型由有符号类型和无符号类型组成,如cl_int, cl_double;而向量数据类型由成倍数的整型和浮点标量数据类型组成,如cl_char<N>,cl_float<N>,其中<N>代表值2、3、4、8或16。

在OpenCL中,还可以将一种标量数据类型强制转换为一种向量数据类型。

float f = 1.0f;
float4 vf  = (float4)f;    //vf是一个拥有4个元素的{1.0, 1.0, 1.0, 1.0}的容器

初始化向量数据类型:向量字面量,向量合成。

向量字面量:

float a = 1.0f;
float b = 2.0f;
float c = 3.0f;
float d = 4.0f;float4 vf = (float4)(a, b, c, d);
float4 f = ( (float2)(1.1f, 2.2f),  (float2)(3.3f, 4.4f) );
float4 f2 = (float4)(1.1f, (float2)(2.2f, 3.3f), 4.4f);    //很灵活

可以通过索引访问个别分量。如果希望访问float4向量的每个分量,则可以分别通过v.x, v.y, v.z. v.w进行访问。对于具有8个或16个元素的较大向量,则可以分别通过v.s0, v.s1, ... , vs7以及v.s0, v.s1, v.s2, ... , v.s9, v.sa, v.sb, ... , v.sf。

向量合成:

float4 c;
c.xyzw = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
float4 d;
d.x = c.x;
d.y = c.y;
d.z = c.z;
d.w = c.w;        //要使用字母索引,必须在添加字母s或S 如d.s0123

向量数据类型可以使用.lo(或.even)和.hi(或.odd)后缀来组成新的向量类型。.lo和.hi后缀指的是向量的下半部分和上半部分;而.even和.odd指的是向量的偶数和奇数元素。

float4 vf = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
float2 low = vf.lo;
float2 high = vf.hi;
float4 vf4 = float4(low, high);    //向量之间不允许进行隐式或显式的转换

标量和向量的区别之一,当对标量应用某个操作时,给操作仅影响单个值;而将相同的操作应用于向量时,它会并行影响向量中的所有项。

转载于:https://www.cnblogs.com/tcsong24/p/6549193.html

理解OpenCL数据类型相关推荐

  1. js堆和栈的区别_几个例子理解不同数据类型的堆栈内存处理

    如有错误烦请指正 js代码的运行环境 浏览器 内核(引擎) node webview(hybrid,嵌入到手机app里面,在app里面运行) ... 下面通过几个例子理解不同数据类型的堆栈内存处理 j ...

  2. 如何理解在数据类型中元素不能修改?

    如何理解在数据类型中元素不能修改? 我所理解的元素修改是: 不能对已经赋值或者初始化的数据类型进行元素的修改,这里的修改不是指片面意思上的输错了数值,将光标移到对应位置,按下删除键,再进行数据的修改等 ...

  3. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...

      Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...

  4. 理解OpenCL中的工作组、工作项的索引

    理解OpenCL中的工作组.工作项的索引 ============================================================== 目录结构 1.工作组和工作项 2 ...

  5. 深入理解redis数据类型

    转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9720033.html redis的存储模型 redis不是普通的键值对存储,它实际上是一个数据结构存储服务器 ...

  6. java中理解引用数据类型

    一.java中基础数据类型与引用数据类型的区别 1.1基础数据类与引用数据类型介绍 1.基础数据类型:①整数类型:long.int.short.byte                         ...

  7. OpenCL 数据类型

  8. 关于空指针(指针指向为NULL)和void类型的指针的理解

    正在学C,书上老说空指针,或者说void指针,对于我这样的生手来说,理解非常容易造成混淆,因为void这个单词的意思也是空,到底空指针的意思是指指向地址为空的类型呢,还是指void类型的指针呢 (1) ...

  9. 惊呼!JavaScript基本数据类型和引用数据类型详解

    前言 我是歌谣 知其然知其所以然 人人都有一个大厂梦 希望通过自己的一个总结分享可以给予大家带来帮助和提升. 本期知识点 JavaScript中基本数据类型和引用数据类型 目标 理解基本数据类型和引用 ...

  10. 《Mali OpenCL SDK v1.1.0》教程样例之一“Hello World”

    1.算法简述 实现矩阵相加:Cn = An + Bn.这个例子虽然很简单,但是由于矩阵元素之间相互独立,每个元素可以非常容易地进行并行计算,可以非常理想地在OpenCL中实现. 2. C/C++实现 ...

最新文章

  1. 不该建索引及不走索引的原因
  2. Spring之DAO二
  3. HTML数字自动排序,jquery – HTML中的数字嵌套排序列表
  4. 【云栖大会夺宝攻略】在线PK、打卡领奖、抢offer,开发者专属玩法在这里
  5. 手写spring编程事务
  6. 母子盗打电话竟为获取游戏Q币
  7. Win11任务栏图标重叠怎么办 Win11任务栏图标重叠的解决方法
  8. HOJ-2662Pieces Assignment(状态压缩,动态规划)
  9. BZOJ2565 最长双回文子串 回文自动机,回文树
  10. 比机器人更优越的半机械昆虫,颜控党们会接受吗?
  11. linux 网络 PING IP可以通,ping域名ping不通
  12. python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
  13. [数据分析工具] Pandas 不可不知的功能(一)
  14. Java日志组件间关系
  15. 2010.6.20 OA项目组一周工作报告
  16. 解决U盘1KB快捷方式病毒(暴风一号)方法
  17. layUI中table重载后表头时间控件失效解决方法,已实践
  18. kali之搜狗输入法安装下载
  19. 关于平面束方程的理解
  20. 步步惊心,Zookeeper集群运维“避坑”指南

热门文章

  1. python 爬虫生成csv文件和图_python爬虫系列(4.2-python操作csv文件)
  2. 计算某天是星期几数字或文本形式的JAVA工具方法
  3. python的基本语法while true_Python正课15 —— 流程控制之while循环
  4. XMLHttpRequest接收JSON请求
  5. [渝粤教育] 江西财经大学 实用英语演讲 参考 资料
  6. 【渝粤教育】电大中专电子商务网站建设与维护作业 题库
  7. 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
  8. What's New in Qt 5.5 5.4,以及5.5 所有module
  9. 拼装html字符串的最快方法
  10. Eventbus 使用方法和原理分析