自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (3)
  • 收藏
  • 关注

原创 GPU虚拟化技术

一、GPU概述GPU的英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,由1999 年NVIDIA 公司提出。GPU这一概念也是相对于计算机系统中的CPU而言的,由于人们对图形的需求越来越大,尤其是在家用系统和游戏发烧友,而传统的CPU不能满足现状,因此需要提供一个专门处理图形的核心处理器。GPU 作为硬件显卡的“心脏”,地位等同于CPU在计算机系统中的...

2020-04-02 09:33:02 708

原创 GPU加速 OpenCL学习与实践(CUDA)

前言由于CUDA完美地结合了C语言的指针抽象,NVIDIA不断升级其CUDA计算平台,CUDA获得了大量科学计算人员的认可,已经成为目前世界上使用最广泛的并行计算平台。通过CUDA,NVIDIA成功打破了Intel在超算市场上的绝对主导地位。在今天,大多数大中小型超算中心中都有GPU的身影。由于CUDA由NIVIDA一家设计,并未被Intel和AMD等接受,因此目前使用CUDA编写的程序只支持...

2020-03-31 17:37:17 1429

原创 OpenCL 图像对象和采样器

内存对象可以用来对主机和设备之间所要传输的数据进行包装。内存对象可以分为两种类型:缓存对象和图像对象。缓存对象用来传输通用数据。理论上讲:可以将图像对象保存在缓存对象中,将它的像素作为一般的缓存数据来访问。但选择图像对象有如下四个重要的理由:(1)在GPU上,图像数据是保存在特殊的全局内存中,这个内存被称为纹理内存,和一般的全局内存不同,纹理内存是被缓存,用于高速访问处理。(2)用来读...

2020-03-31 14:15:28 1636

原创 OpenCL 混洗和选择函数、向量测试函数、几何函数

1.OpenCL的混洗函数的参数输入为一个或两个输入向量,输出得到的向量包含输入向量的分量。(1)allm shuffle(alln x, uintegerm mask); --创建一个向量,其中包含x的分量,顺序由mask来确定。(2)allm shuffle2(alln x, alln y, uintgerm mask); --创建一个向量,其中包含x和y的分量,顺序由mask来确定。s...

2020-03-31 11:26:22 990

原创 OpenCL 整数函数

1.整数函数分为三类来讨论;加法运算和减法运算,乘法运算,以及其余类型的函数。在各种整数函数的运算中,integer数据类型指代范围包含有符号整数和无符号整数:uchar,char,ushort,short,uint,int,ulong和long.uinteger型指代范围仅仅是无符号整数:uchar,ushort,uint和ulong.2.加法和减法函数:(1)integern add_sa...

2020-03-31 09:59:28 1860

原创 OpenCL 三角函数和其他类型的浮点函数

1.和math.h相比,OpenCL提供了更为丰富的三角函数:(1)floatn sin/cos/tan(floatn)–返回正弦值,余弦值和正切值(2)floatn sinpi/cospi/tanpi(floatn x)–返回Pix的正弦值,余弦值和正切值(3)floatn asin/acos/atan(floatn)–返回反正弦值、反余弦值和反正切值(4)floatn asinpi/a...

2020-03-30 17:31:29 1141

原创 OpenCL 比较函数、指数函数和对数函数

1.比较函数:OpenCL有些函数所返回的是两个浮点数中的较大值,有些函数返回的则是较小值。其余的函数则根据阈值参数来限制或平滑数据输入。比较函数:(1)float clamp(floatn x, float/n min,float/n max)–返回如果x<min,就返回min;如果x>max,就返回max,否则返回x;(2)float fdim(floatn x,floatn ...

2020-03-30 16:38:01 1737

原创 OpenCL学习笔记(16)--浮点型函数

1.OpenCL的浮点函数将会被划分为五类来分别讨论:算数运算和取舍,比较,指数运算,三角运算,以及其他类型的函数。2。算术运算函数和取舍函数:大多数的数学函数都能计算乘积、商数以及余数,大多数取舍函数都能接受float型数,然后返回小数部分为0的float型数:(1)floatn fabs(floatn x)–返回参数的绝对值,|x|;(2)floatn fma(flaotn a,floa...

2020-03-30 15:38:31 2049

原创 OpenCL 数据传输操作

1.加载和保存同类型的数据:如果发送端和接收端的数据类型相同,例如将一个区域的int4型向量加载到另一区域中,只知道“=”即可。除了对变量赋值外,等号还可以将一个区域的数据赋值传输到另一个区域中。例如,内核想将全局内存中的数据加载到局部内存中,并将处理完的结果保存回全局内存。如果要将局部内存改为私有内存,只需要将数据声明中的_local标识符去掉即可,默认的标识符便是_private,因此,如果没...

2020-03-30 14:34:51 1833 1

原创 OpenCL 工作组和工作项函数

1.主机应用程序先设定内核数据的维度,每个维度上工作项的数量以及每个维度上各个工作组中工作项的数量,然后,调用函数clEnqueueNDRangeKernel来进行配置。当工作项开始执行时,他需要事先知道所要访问的数据所在的位置,即当前工作项在所有工作项中的ID.如果工作项还属于某个工作组,那还需要知道工作项在这个工作组中的ID.2.维度和工作项:工作项ID的维度数就是你访问一个包含工作项数据的...

2020-03-30 13:55:26 887

原创 OpenCL 运算符

1.Opencl中的全部操作符,他们的操作符既可以是每一位,各个数字,也可以是逻辑表达式。在这些接受多个参数的操作符中,运算对象既可以全部是标量,也可以全部是向量。此外,这其中的很多操作符还可以处理标量和向量之间的混合运算。2.如果是算术操作符,它的两个操作数类相同,得到的结果类型不变。如果两个操作数,一个是包含整数的向量,另一个是包含浮点数的向量,得到的结果向量所含的分量将全部是浮点数,注意,...

2020-03-30 11:21:51 479

原创 OpenCL 内核编程:运算符和函数

1.OpenCL的内建函数:不需要另外的链接库文件,或者是包含特别的头文件。可用的内建函数分为7类:(1)工作项和工作组函数–用来表示数据的维度,决定工作组的成员(participation),获取工作项和工作组的ID;(2)数据传输函数–用于在内存区域间加载和保存数据;(3)浮点函数–用于算数运算、取舍、比较、求幂或是求对数运算,三角函数运算以及其他的运算操作;(4)整数运算函数–整型向...

2020-03-30 10:51:03 947

原创 OpenCL OpenCL设备模型

1.Opencl设备模型:__global被称为地址空间修饰符,这是因为它所修饰的任何指针都会被保存在全局地址空间之中,而这个地址空间也被称为全局内存。每个引用内存的内核参数都必须有一个地址空间修饰符。2.OpenCL设备模型提供了四种地址空间:(1)全局内存–保存整个设备的数据,既可读,也可写;(2)常数内存–和全局内存相似,但是只可读;(3)局部内存–保存工作组中工作项的数据;(4)...

2020-03-27 17:16:03 713

原创 OenCL 向量数据类型

1.首选向量宽度:函数clGetDeviceInfo需要一个参数来表示所需的信息类型,opencl提供了一系列的参数来引用向量宽度,名字形如:CL_DEVICE_PREFERED_VECTOR_WIDTH_TYPE,函数的返回值是数据结构cl_uint,表示一个给定类型的向量其中有多少个相应类型的标量数据.TYPE可以设为char,short,int,long或float,当然也可为HALF或Do...

2020-03-27 16:08:01 430

原创 OpenCL half数据类型

1.half数据类型:half数据类型用16位来表示浮点数。这比更为常用的float型的示数范围要小,但他是浮点数家族的新成员。有效位数(0-9)10bits,指数位(9-15)5bits,符号位1bits.opencl标准并没有规定兼容设备是否需要支持half数据类型,但是你可以通过设定CL_DEVICE_EXTENSIONS参数,调用clGetDeviceInfo函数的方法来确定设备是否支持这...

2020-03-27 14:53:16 2311

原创 OpenCL 浮点计算

1.浮点计算。标准定义了三种表示实数的方法,分别表示为float,double,和half等数据类型。opencl标准只定义了float数据类型。如果目标设备还能支持另外两种,编程时也可以使用他们来计算处理。2.float数据另外i行可以表示的数值共分为下面四种:(1)正规化数–数字完全可以用float数据类型来表示;(2)去正规化数–数字的绝对值比最小所能表示的正规化还小;(3)无穷数–...

2020-03-27 14:05:01 1120

原创 OpenCL 内核函数

1.内核函数的整体结构就像是一个正常的C函数,他也是由函数名,括号所包含的参数列表以及花括号所包含的可执行的语句所构成,但两者之间还是有以下三个主要不同点:(1)每个内核函数的声明都是以_kernel开头;(2)每个内核函数的返回类型都必须是void类型;(3)有些平台将会拒绝编译那些不带参数的内核函数;2.内核函数并不需要单独保存在另外的文件中,关键词_kernel实际上是提醒编译器,这...

2020-03-27 11:37:36 2289 1

原创 OpenCL 工作项、工作组和数据划分

1.工作项的大小和偏移量:(1)函数clEnqueueNDRangeKernel的参数global_work_sizes表示的是各个维度上所要处理的工作项的数量。如果需要访问的第一个工作项的全局(初始值)ID为{0,2,3},只需要将函数clEnqueueNDRangeKernel的参数global_work_offset取值设为{0,2,3}即可。一般代码都将global_work_offse...

2020-03-27 10:07:28 1349

原创 OpenCL 映射和解映射

1.主机使用函数clSetKernelArg将内存对象发送给设备,完成设备到主机的数据传输最为简单的函数是调用函数clEnqueueReadBuffer。每个函数都包含一个名为blocking的布尔型变量,如果它的值为CL_TRUE,这个函数在完成读写操作之前都不会返回。如果它的值为CL_FALSE,这个函数将入列读写命令,但是不会等到整个数据传输操作结束之后才返回。2.offset参数表示的是...

2020-03-26 18:01:14 1607 1

原创 std命名空间

https://blog.csdn.net/qq_41507643/article/details/90242866

2020-03-17 15:20:22 3143

原创 自制Spark安装详细过程(含Scala)

https://blog.csdn.net/Fortuna_i/article/details/82751818

2020-03-17 13:56:23 366

原创 OpenCL 简单概念

OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领...

2020-03-13 11:04:07 1821

原创 Tensorflow模型转换 生成Tflite格式

原文链接:https://blog.csdn.net/qq_16564093/article/details/78996563参考google的一个官方例子:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/speech_commands主要参考里面的train.py代码跟freeze.py代码,分...

2020-01-16 13:52:51 1352

原创 pip升级后Import Error:cannot import name main解决方案

pip升级后Import Error:cannot import name main解决方案在Ubuntu上安装软件,不小心升级了pip,导致使用时报错如下:后来发现是因为将pip更新为19.3.1后库里面的函数有所变动造成这个问题。 解决方法如下:$ sudo gedit /usr/bin/pipfrom pip import main改成from pip._internal...

2020-01-02 17:14:33 367

C++学习笔记.docx

本文档通过通俗易懂的语言来讲解 C++ 编程语言。 C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。

2020-04-15

C语言学习笔记.docx

本文档是专门为需要从零开始了解 C 语言的软件程序员打造的。本文档将让您对 C 语言有足够的认识,从而提升您自己的专业知识水平。

2020-04-15

python学习笔记.docx

Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。

2020-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除