您当前位置:资讯中心 >开发 >浏览文章

厉害,美国人又搞了一个垄断的生态系统

来源:不详 日期:2024/1/22 9:28:27 阅读量:(0)

去年AIGC大火,程序员都把注意力放在了最上层,而忽略了提供算力的最底层:GPU。

不过这也正常,就像很少人直接针对CPU编程一样,直接针对GPU编程的人也不多。

但是了解一下GPU编程,绝对大有好处。

今天先聊聊GPU编程,然后再聊聊一个CUDA这个新的生态系统,对编程细节不感兴趣的可以直接拉到最后。

对了,文末还有免费送书的福利。

CPU vs GPU

图片图片

CPU的设计目标是“尽可能地降低延时”

(1) 强大的ALU(算术逻辑单元),可以在很少的时钟周期内完成算术运算。

(2) 巨大的Cache:加快指令和数据的存取速度

(3) 复杂的逻辑控制:当程序员有多个分支,它可以通过分支预测来降低延时。

GPU的目标是:“尽可能地实现大吞吐量”

(1) ALU 简单,但是超级多

(2) Cache很小

(3) 逻辑控制简单。

如果把GPU的单个核心比作小学生,那一个CPU的核心就是老教授。

如果要做微积分,几千个小学生也比如上老教授。

但是,如果只是100以内的加减法,几千个小学生同时做(并行计算),那效率肯定要比老教授高。

老教授处理复杂任务的能力是碾压小学生的,但是对于没有那么复杂的任务,还是顶不住人多。

把串行改成并行

我们用一个例子来展示一下:

int a[] = {1,2,3,4,5,6,8,9,10};
int b[] = {11,12,13,14,15,16,17,18,19,20};
int c[10];




int main() {
    int N = 10;  // Number of elements
    for (int i = 0; i < N; i++) {
        c[i] = a[i] + b[i];
    }
    return 0;
}
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。