77、avx2 向量寄存器介绍

发布时间:2024年01月18日

本节带大家简单了解下计算机内的存储器,了解了存储器之后,对于后面的优化就会有更深刻的认识。

我们最熟悉的存储器就是电脑的内存,或者硬盘。在计算机系统中,我们可以把所有可以存储数据的部件都叫做存储器。

只不过很多是用户可见并熟悉的,如硬盘和内存条,GPU 的显存等,也有一些是用户不可见或者不熟悉的,如CPU 的寄存器, GPU 的共享内存等。

这些用户不可见的内存,大部分是开放给开发者来做程序开发使用,使用的好,就可以使程序的性能有大幅度的提升。

上一节介绍了 avx2 向量指令集,向量指令运算用到的寄存器就是向量寄存器。

什么是向量寄存器?

在现代计算机和高性能计算系统上,我们经常遇到各种术语,其中“向量寄存器”是一个重要的概念。

先说一下寄存器,寄存器是 CPU 内最快速的存储设备,它直接用于参与计算,一般 CPU 中的寄存器个数不多。比如,我们电脑中常用的 Intel 芯片,寄存器是 64 位的,也就是说一个寄存器可以存放一个 int64 的数据,或者两个 int32 的数据。Intel i7 CPU 只有16个64位寄存器,因此,如果我们要实现一个 1+1等于2的运算,基本上需要占用 3 个寄存器。这种 1 + 1 = 2 的操作属于标量运算,上一节也提到过,目前我们用到的大部分C语言代码,都标量运算。

你可能会疑惑,就这么些寄存器够用的吗?大部分情况下是够用的,如果不够用,cpu 就会把此时占着的寄存器中的数据,先保存到内存中,然后腾出来寄存器继续使用,这叫做寄存器溢出。

文章来源:https://blog.csdn.net/dongtuoc/article/details/135660603
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。