hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 637|回复: 6

Intel指令集未来发展,来自官方网站

[复制链接]

481

主题

481

帖子

1465

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1465
发表于 2023-10-5 11:13:42 | 显示全部楼层 |阅读模式
提到了AVX-512

太大,上传无能

提供地址

http://download-software.intel.c ... iles/319433-015.pdf
回复

使用道具 举报

0

主题

201

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-5 11:14:20 | 显示全部楼层
主要思想是
提供32个新的zmm寄存器,512位宽,从zmm0-zmm31
其中16个扩展自AVX寄存器,16个为新设
64位下可以访问所有32个寄存器,32位下,只能访问8个

提供8个opmask寄存器k0-k7,其中k1-k7用来标志某些不需要处理的向量项目, k0干啥使,暂时没看懂
回复

使用道具 举报

0

主题

179

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-10-5 11:15:02 | 显示全部楼层
MSB........................................LSB
zmm0 =
[ 0x00000003 0x00000002 0x00000001 0x00000000 ] (bytes 15 through 0)
[ 0x00000007 0x00000006 0x00000005 0x00000004 ] (bytes 31 through 16)
[ 0x0000000B 0x0000000A 0x00000009 0x00000008 ] (bytes 47 through 32)
[ 0x0000000F 0x0000000E 0x0000000D 0x0000000C ] (bytes 63 through 48)
zmm1 =
[ 0x0000000F 0x0000000F 0x0000000F 0x0000000F ] (bytes 15 through 0)
[ 0x0000000F 0x0000000F 0x0000000F 0x0000000F ] (bytes 31 through 16)
[ 0x0000000F 0x0000000F 0x0000000F 0x0000000F ] (bytes 47 through 32)
[ 0x0000000F 0x0000000F 0x0000000F 0x0000000F ] (bytes 63 through 48)
zmm2 =
[ 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA ] (bytes 15 through 0)
[ 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB ] (bytes 31 through 16)
[ 0xCCCCCCCC 0xCCCCCCCC 0xCCCCCCCC 0xCCCCCCCC ] (bytes 47 through 32)
[ 0xDDDDDDDD 0xDDDDDDDD 0xDDDDDDDD 0xDDDDDDDD ] (bytes 63 through 48)
k3 = 0x8F03 (1000 1111 0000 0011)

vpaddd zmm2 {k3}, zmm0, zmm1
效果
[ ********** ********** 0x00000010 0x0000000F ] (bytes 15 through 0)
[ ********** ********** ********** ********** ] (bytes 31 through 16)
[ 0x0000001A 0x00000019 0x00000018 0x00000017 ] (bytes 47 through 32)
[ 0x0000001E ********** ********** ********** ] (bytes 63 through 48)
结果
zmm2 =
[ 0xAAAAAAAA 0xAAAAAAAA 0x00000010 0x0000000F ] (bytes 15 through 0)
[ 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB ] (bytes 31 through 16)
[ 0x0000001A 0x00000019 0x00000018 0x00000017 ] (bytes 47 through 32)
[ 0x0000001E 0xDDDDDDDD 0xDDDDDDDD 0xDDDDDDDD ] (bytes 63 through 48)

随着操作数据类型不同, opmask寄存器并不是所有标志都有效,从低位起直到操作的向量个数相等的位,为有效mask长度
比如64位下操作8个8位时候,k寄存器就仅仅低8位有效
回复

使用道具 举报

0

主题

205

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2023-10-5 11:16:01 | 显示全部楼层
操作k寄存器的指令分成3类
读写,测试(类似test指令),逻辑
回复

使用道具 举报

0

主题

166

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2023-10-5 11:16:13 | 显示全部楼层
还支持一种叫broadcast的特性,具体如何翻译不太清楚
效果是
vmulps zmm1, zmm2, [rax]
把[rax]指向的内存地址中的32位浮点复制16份,跟zmm2中的32位浮点相乘,写入zmm1
回复

使用道具 举报

0

主题

203

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-5 11:16:51 | 显示全部楼层
发现两个问题
1、AVX就有整数指令,而不是仅仅AVX2,但是仅仅限于对xmm寄存器操作,AVX2是3操作数,并且支持YMM寄存器,AVX已经有完善的乘法加法了!
2、AVX-512也有完善的整数指令,但是会不会一次推出?

所有的指令,对加法都很完善了,对乘法,仅仅支持到64X64=64,未发现64X64=128

所以,似乎mulx更好一些
回复

使用道具 举报

0

主题

206

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-5 11:17:31 | 显示全部楼层
乘法有52x52,可以获得高52bit或者低52bit的数据
这大概是从double抄过去的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 07:43 , Processed in 0.057758 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表