GPU并行计算基础知识科普

本文科普了GPU并行计算的基础知识,包括异构架构的概念,解释了GPU如何与CPU协作进行并行计算,以提高计算效率。通过举例说明了GPU并行计算在处理大量数据时的优势,如找数组最大值问题。最后讨论了OpenCL和CUDA作为支持GPU通用计算的开发环境的区别,指出CUDA在Nvidia显卡上的生态优势,但实际项目中OpenCL的通用性也很重要。
摘要由CSDN通过智能技术生成

1.什么是异构架构?

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

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

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

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

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

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

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

举个例子,要找到一个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++版本)。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值