使用Z13矢量扩展工具中的SIMD指令集加速社交媒体和大数据工作负载处理。 IBM的z13处理器通过更大容量的缓存,同时多线程,大页面帧,指令流水线管理和单指令多数据,增加高性能大型机服务器的计算能力。 Z13被设计成为大型机提供移动计算能力。并且处理器通过z13矢量扩展设备,回归单指令多数据(SIMD)。
SIMD适量指令能够加速如C和Java语言的处理。矢量指令对过个数据元素进行并行操作,从而使主机能够快速处理大量数据。这对于社交媒体和大数据工作负载来说是个福音,但对面临普通负载的系统程序员来说似乎没有太大的帮助。 SIMD指令通过多种方式增加吞吐量。
大多数机器指令会的结果会覆……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
IBM的z13处理器通过更大容量的缓存,同时多线程,大页面帧,指令流水线管理和单指令多数据,增加高性能大型机服务器的计算能力。
Z13被设计成为大型机提供移动计算能力。并且处理器通过z13矢量扩展设备,回归单指令多数据(SIMD)。
SIMD适量指令能够加速如C和Java语言的处理。矢量指令对过个数据元素进行并行操作,从而使主机能够快速处理大量数据。这对于社交媒体和大数据工作负载来说是个福音,但对面临普通负载的系统程序员来说似乎没有太大的帮助。
SIMD指令通过多种方式增加吞吐量。大多数机器指令会的结果会覆盖输入操作数其中之一不同,大部分SIMD指令集会使用两个输入寄存器,并将结果存储在第三个寄存器。这意味着程序员可以节省与寄存器纠结的时间。
矢量寄存器为128字节长度。前16个寄存器实际上与64位浮点寄存器(FPRs)共存。改变一个FPR同样会破坏对应矢量寄存器的所有字节。存在一些关于通过程序调用保护矢量寄存器的特殊规则,IBM的Assembler Services Guide有详细说明。
SIMD向量指令包括所有数学函数和浮点模式。同样也有字符串操作以及用于获取和存储数据的方法。
矢量寄存器内容由1、2、4、8或16字节元素组成。矢量指令掩膜指定需要被操纵原件的尺寸。所有矢量指令助记符从V开始,虽然IBM同样还为特定的元素大小提供了额外的记忆空间,具体可以查阅z13 Principles of Operation手册低21章24节。
SIMD指令如何工作
手册还指出了一些额外的细微差别,但这些简单的向量指令可以揭示SIMD指令集如何适用于Z13。
加载矢量寄存器的命令看起来很熟悉:
VL V1, D2(X2,B2)
其中V1是矢量寄存器,D2是位移,X2和B2为索引与基地址寄存器。
但是,由于矢量寄存器的内容有元素组成,还有指令可以与他们单独打交道。例子之一就是Vector Load Element指令,可以更新一个元素:
VLEx V1,D2(X2,B2)M3
其中x指定元素的大小,B为字节,H为半字(16位),F为全字以及G为双字。V1、D2、 X2 与 B2操作数扮演熟悉的角色,但M3的掩膜指定字段的索引并更新。因此VLEH V1,HALFWORD,3会更新矢量寄存器1的第四个半字,并保持其他元素不变。
在常规负载下,SIMD向量负载指令集有多种方法来产生掩膜,从通用寄存器插入元素并从一种矢量包装元素到寄存器。这与十进制不大一样——这种能力能减半元素并将其压缩到另一个寄存器。
Vector register examples
假设我们已经加载了两个矢量寄存器,每个寄存器有8个半字整数,我们可以将所有元素合在一起,用一条矢量添加指令:
VA V1,V2,V3,M4
本例中,处理器把V2和V3中的半字元素相加并保存在V1中,这样体现了SIMD指令的非破坏自然属性。掩膜值应该与半字相同。处理器会将溢出移动到整数符号位,这样可以使计算有点棘手。
矢量指令同样也支持字符串函数。只要掌握几个复杂选项,SIMD字符串功能就能变得更简单一些,你可以把他们作为硬件实现C语言字符串处理函数。让我们以Vector Find Element Equal为例:
VFEE V1,V2,V3,M4[,M5]
在高级别上,该指令会比较V2与V3中的元素,并在V1设置相应的标识。掩膜M4表示元素的大小,M5指定两件事:设置位2告诉处理器比较V2、V3和0。当位4等于1,处理器将会设置条件码。在任何速率下,指令会从左往右比较第二个和第三个操作数元素。当它发现相等的元素,就会在第一个操作数的第七字节设置元素字节索引。如果没有元素相等,第一个操作数的第七字节将包含一个与寄存器元素数量相等的字节索引。如果指令发现所有元素都为零,也会进行同样的操作。
相关推荐
-
IBM提升Power Systems服务器安全性和可靠性
据消息人士透露,IBM将在本月晚些时候向其Power Systems阵容增加两款增强型服务器,这些服务器旨在为 […]
-
Broadcom收购CA试图拓宽产品组合
Broadcom公司出乎意料地宣布收购CA Technologies公司让分析师们摸不着头脑,分析师无法想象这 […]
-
跟踪性能?这三种大型机监控工具需要get起来
大型机用户们在系统监控工具上有许多选择,是选择实时、近时或后处理工具中的哪一种,还要看它们是否符合你的IT需求……
-
如何从大型机传输PS文件到Linux服务器?
我需要从大型机传输一个PS文件到一台Linux服务器上,有啥JCL脚本可用么?有几种方式可将PS文件从大型机迁移到Linux服务器。