从零开始学习OpenCL开发(四)shader

本文介绍了OpenCL中的shader编程,包括其类C语言特性、工作项与工作组函数、向量操作、寻址空间描述符、类型转换和内建函数。重点讲解了vector操作、地址空间以及convert和as转换的区别。
摘要由CSDN通过智能技术生成

      这里介绍关于OpenCL中program函数的写法,program函数通常是文本形式的,然后使用clCreateProgramWithSource这样的接口load进来。在Shader编程中也经常使用这种形式书写GPU上运行的代码,所以为了表述清楚和理解方便,这里姑且把这些program函数的源码文本称为OpenCL的shader吧

 下面都是写在shader中的一些语法

 

1 shader是类C的语言,派生自C99标准(99年ansi C接受的标准,也是C最新的标准)

不支持:

   头文件、函数指针、递归、变长数组(这个VS也不支持)

额外加入的类型:

   vector 类型 char2 ushaort4 int8  这些最后都会变成长度对齐的

   图像类型 image2d_t image3d_t  sampler_t ...

   event类型 event_t(关联于API中CL_event)

 

 

2.work item和 work Group相关函数

 

 

 3.vector 操作

vector的前一半为lo,后一半为hi

int4 v=(int4) 7 =(int4)(7,7,7,7)

 v=(in4)(1,2,3,4)

int2 v2=v.lo ->(1,2)

v2=v.hi ->(3,4)

v2.v.odd ->(2,4)

对vecto

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值