OpenCL
Ivan'yang
非计算机专业学生 兴趣领域人工智能及无人驾驶
展开
-
学习OpenCL与卷积神经网络 Day6——在程序中加入一个计时系统
目录一点想法计时系统具体步骤输出结果关于图像RGB获取一点想法这是我关于做这个项目的一个总体思路。从最初的的获取图像与输出图像开始着手;再到简单实验内核进行加速处理这里我也简单的做了两个常规程序的试验(图像旋转与高斯模糊);然后就是将内核程序运行速度与外程序运行速度进行一个简单比较(这里就需要引入计时系统了);过后便开始正式开始处理图像识别相关的问题了,比如通过获取图像的RGB对其进行卷积处理(从这里开始正式将OpenCL与CNN相结合起来)等。计时系统具体步骤首先在创建命令队列时,要引入CL_Q原创 2020-12-22 20:12:39 · 273 阅读 · 0 评论 -
学习OpenCL与卷积神经网络 Day5——基于OpenCL的图像旋转以及高斯过滤的程序构建
目录前言采样器设备端采样器创建主机端采样器创建图像旋转内核创建主机函数创建完整程序旋转输出结果高斯过滤内核创建主机函数创建完整程序高斯模糊输出结果前言OpenCL其实算是一种“加速语言”,其由设备上运行的kernel函数语言和控制平台的API组成,它通过将某些简单而又重复的工作转交给GPU/FPGA外接设备,实现异构并行来加速原本的工作。比如在OpenCV中就引入了OCL module,其编译模块要比CUDA快很多,它就起到了一个加速图像处理过程的作用。当然,今天的工作只是简单的熟悉一下如何在OpenC原创 2020-12-17 22:08:38 · 815 阅读 · 0 评论 -
学习OpenCL与卷积神经网络 Day4——OpenCL内核(Kernel)程序构建
目录内核程序修饰符函数修饰符kernel修饰符地址空间修饰符全局地址空间局部地址空间常量地址空间私有地址空间对象访问修饰符主程序中内核创建内核对象设置内核参数执行内核内核函数样例内核程序修饰符函数修饰符函数修饰符用来修饰OpenCL内核函数及一般函数的一些特性,以帮助编译器确定一些信息。kernel修饰符__kernel修饰符声明一个函数为一个内核函数,这个内核函数将会在OpenCL设备上执行,这也是我们最常用的修饰符。内核函数返回类型必须是void类型,且主机端可以调用这个函数。__kerne原创 2020-12-12 19:21:25 · 1163 阅读 · 0 评论 -
学习OpenCL与卷积神经网络 Day2——OpenCL主程序简单框架的构建
目录简易程序介绍CL核程序主程序分步整合程序今日试错心得简易程序介绍今天我们就拿一个简单矩阵做例子我们在C语言(主机上)跑一次,在CL核中跑一次,然后对比其计算结果,若计算值相同则输出结果。CL核程序程序很简单,就是通过dot()函数进行简单的矩阵相乘运算__kernel void mac(__global float4*matrix, __global float4*vector, __global float* result){ int i = get_global_id(0);原创 2020-12-10 21:56:58 · 376 阅读 · 1 评论