GPU 相关的文章

1、H2D请求与D2H响应
https://zhuanlan.zhihu.com/p/437529355
D:device
H:host
2、GPU工作原理
http://www.360doc.com/document/12/0808/16/6590333_229040581.shtml
3、G2D介绍
https://blog.csdn.net/chris___mo/article/details/7617981
4、cuda框架
https://javaforall.cn/126025.html

5、uint8和int8的区别
https://www.zhihu.com/question/352885178

1、GPU
主要技术:cuda:compute unified device architecuture 统一计算设备架构
应用场景:善于处理图像,结果相同、相似的事情、量大的事情,如形状轨迹变量 位置角度
和cpu的区别:gpu上的问题必须是平行的
打个比方,CPU就是1个研究生,GPU就是1万个初中生。图像处理就是初中题。你把1万道初中数学给研究生,它也能做,但是只能一题一题做,所以很慢。但你把这一万道数学题给1万个初中生做,速度肯定比给1个研究生做要快。

2、CUDA
https://blog.csdn.net/pjh23/article/details/83418736?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.pc_relevant_without_ctrlist&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.pc_relevant_without_ctrlist&utm_relevant_index=1
CUDA就是一个软件编程的框架,将很多底层通用的代码集成了,有了这个框架我们就可以减少编程的工作量,非常方便我们调用GPU,所以CUDA是一个方便我们编写代码调用GPU的框架。

3、AI compiler
https://zhuanlan.zhihu.com/p/412578327
对神经网络优化,尽量减少逻辑判断,一算到底是最好的。对内存要尽可能优化,降低内存占用。
神经网就是一组矩阵计算。神经网编译器,就是将这组计算针对平台尽可能加速。
编译神经网络,把一张张计算图编译成cpu的gpu的,或者是某些专用的AI计算设备,比如google 的TPU的指令集合。
具体说来就是先来个图剪枝,再来个拓扑序遍历计算图,一边遍历,一边映射为中间表示。

神经网络编译器大概有TVM/Glow/TensorRT/TensorComprehension/XLA/Tiramisu。这些针对的都是神经网络模型推理阶段的优化,从神经网络模型到机器代码的编译。一般过程是:神经网络模型->图优化->中间代码生成(例如Halide)->中间代码优化(例如TC/Tiramisu使用多面体模型进行变换)->机器代码。编译的是神经网络的模型,优化的是网络模型本身,各层数据数据存储的方式(如分块存储,nchw,nhcw),各个算子(如mlp,conv)的计算方式(如向量化,分块)等等。

以TVM和LLVM举例,TVM拿到模型的计算图,先用Relay做一下图切分,算子融合,conv-bn-relu之类的,也有人做multiple conv fusion,这一步是graph-level的优化;之后再到算子层面,现在的deep compiler侧重于循环优化,这部分在传统编译器里研究的很多,即使是deep learning领域,能做的domain specific的优化也没多少,auto tuning做的主要还是tiling的参数 (AutoTVM / FlexTensor (ASPLOS 2020) / Ansor (OSDI 2020))。做完operator-level的优化,TVM IR转成LLVM IR,再借助LLVM的各种后端,生成可执行代码。

4、过滤器vs卷积核的区别
https://blog.csdn.net/weixin_38481963/article/details/109920512
https://medlen.blog.csdn.net/article/details/109906338

5、YUV vs RGB
https://blog.csdn.net/T76230169/article/details/115414327
https://www.jianshu.com/p/937415d4360f
https://www.zhihu.com/question/24994945/answer/1635016103

##1.RGB 格式
一般较为熟悉,RGB图像具有三个通道 R、G、B,分别对应红、绿、蓝三个分量,由三个分量的值决定颜色;这三种颜色称为 三原色,将它们以不同的比例相加,可以产生多种多样的颜色。

通常,会给RGB图像加一个通道alpha,即透明度,于是共有四个分量共同控制颜色(RGBA)

在图像显示中,一张 1280 * 720 大小的图片,就代表着它有 1280 * 720 个像素点。其中每一个像素点的颜色显示都采用 RGB 编码方法,将 RGB 分别取不同的值,就会展示不同的颜色。

RGB 图像中,每个像素点都有红、绿、蓝三个原色,其中每种原色都占用 8 bit,也就是一个字节,那么一个像素点也就占用 24 bit,也就是三个字节。

一张 1280 * 720 大小的图片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间。

##2.YUV 格式
(YCrCb)是指将亮度参量Y和色度参量U/V分开表示的像素格式,主要用于优化彩色视频信号的传输。

Y 表示明亮度(Luminance,Luma或brightness),也就是灰阶值
U 和 V 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
YUV像素格式来源于RGB像素格式,通过公式运算,YUV 三分量可以还原出 RGB,YUV 转 RGB 的公式如下:
    R = Y + 1.403V
    G = Y - 0.344U - 0.714V
    B = Y + 1.770U

一般,将 RGB 和 YUV 的范围均限制在 [0, 255] 间,则有如下转换公式:

   R = Y + 1.403(V - 128)
   G = Y - 0.344(U - 128) - 0.714(V - 128)
   B = Y + 1.770(U - 128)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值