GPU并行计算基础知识科普

1.什么是异构架构?

使用CPU,GPU等两种或多种不同的硬件架构结合在一起完成计算任务。

说白了就是CPU内部组织 和 GPU内部组织不一样,即“异构”。

GPU并行计算基础知识科普_第1张图片

2.什么叫GPU通用计算,也就是GPU并行计算。

没启用GPU计算之前的计算任务,通常是由cpu来完成的。

后来随着GPU的性能越来越强,就和CPU组织在一起完成某项计算任务。

并行计算,顾名思义就是同时进行计算。

看下面的GPU架构就大概知道了:每个小格子可以做同样的计算任务,非常适合处理那种没有先后顺序影响的计算任务。

GPU并行计算基础知识科普_第2张图片

举个例子,要找到一个512长度的正整数uint数组里最大的值?

用CPU做搞个for循环也不是不行,计算复杂度是O(N).

用GPU并行计算来做就很快,先把512长度直接拦腰切断为两个256,然后下标[0]的下标[256]的比较取大,下标[1]的下标[257]的比较取大,以此类推。一次就减半了,512 = 2的9次幂,9次就出结果了。

计算复杂度O(logN)。这效率不谈了。

另外,对矩阵加减法简直就是一步到位。

 

3.常用的支持GPU通用计算的开发环境OpenCL和Cuda有什么区别,怎么做选择?

Cuda是Nvida专属,opencl是通用的,A卡也行。但是这两年老黄的显卡这么顶,懂得都懂,Cuda的学习生态环境会好很多。但是,在实际项目中需要兼顾A卡用户,你opencl也得会点。

接下来我会介绍opencl和cuda简单测试框架(C++版本)。

 

 

 

 

你可能感兴趣的:(并行计算,gpu)