新HPL-AI基准的矩阵

我的同事们正在寻找一个用于新基准的矩阵。他们来对地方了。

目录

电子邮件

几个星期前,我在田纳西大学获得了杰克东六角的这封电子邮件。

对于这个新的HPL-AI基准,我正在寻找一个矩阵,它不是对称的,很容易生成(大约生成O(n^2)个运算),很密集,不需要旋转来控制增长,并且条件数很小(

基准测试分为两个步骤:

1) 在矩阵上以短精度计算LU,并计算近似解x。(在Nvidia上,半精度比DP快6倍。)

2) 以L和U为先决条件,以x为起点进行GMRES(通常需要3-4次迭代才能收敛)

基准详情如下:http://bit.ly/hpl-ai.

矩阵的任何想法?

对称希尔伯特矩阵

我研究过的第一批矩阵之一是希尔伯特矩阵。利用MATLAB中的单态展开特性,传统的对称Hilbert矩阵可以通过

总体安排老鼠n=5;i=1:nj=i'H=1./(i+j-1)
I = 1 2 3 4 5 J = 1 2 3 4 5 H = 1/2 1/2 1/4 1/5 1/5 1/2 1/2 1/3 1/4 1/5 1/6 1/3 1/41/5 1/6 1/7 1/7 1/4 1/5 1/5 1/6 1/7 1/7 1/8 1/8 1/8 1/6 1/6 1/7 1/7 1/8 1/8 1/8 1/8 1/8

当您添加行向量时到列向量J, 所结果的i+j是一个矩阵。将此与内积,i*j,它生成标量,而外产品,j*i,产生另一种矩阵。表达方式i+j可以被认为是“外汇”。

两个标量扩展完成计算;I + J-1从和的每个元素中减去1,然后1./(i+j-1)将1除以分母中的每个元素。这两种标量扩展从最早的时候就已经在MATLAB中出现了。

希尔伯特矩阵的元素只依赖于和i+j,所以它们在antidiaconals上是恒定的。这种矩阵被称为Cauchy矩阵。求解涉及Cauchy矩阵的方程式的快速算法在$ O(n ^ 2)$时间。

非对称希尔伯特矩阵

几年前,我想要一个非对称的测试矩阵,所以我把希尔伯特矩阵分母中的加号改为减号。但这就产生了一个沿次对角线除以零的除法,所以我也将-1改为+1/2。我称之为“非对称希尔伯特矩阵”

H=1./(i-j+1/2)
H = 2/3 2/5 2/5 2/7 2/7 2/9 -2 2 2/3 2/5 2/7 -2/3 -2 2 2/3 2/5 -2/5 -2/3 -22 2/3 -2/7 -2/5 -2/3 -2 2

这些元素仅依赖于i-j这些矩阵是Toeplitz,同样,这类系统可以用$O(n^2)$运算来求解。

当我第一次计算非对称Hilbert矩阵的奇异值时,我感到惊讶——它们中的大多数几乎等于$\pi$。我们已经看到只有5乘5的小数点后五位了。

总体安排西格玛=svd(H)
西格玛=3.141589238341321 3.14127220456508 3.12952059345258 2.921860834913688 1.461864493324889

这是一个大惊喜。最终解释,提供Seymour Parter,涉及20世纪20年代的Szego定理,该定理将Toeplitz矩阵的特征值与Fourier级数和方波联系起来。

基准矩阵

我一直在杰克的同事皮托克Luszczek。这是我们对HPL-AI基准矩阵的建议。这取决于两个参数,N.作为从1到-1,这个矩阵的核心从对称的希尔伯特矩阵到非对称的希尔伯特矩阵N在分母中,对角线上的1产生对角线优势。

A=1./(i+mu*j+n)+double(i==j);
清楚的A.类型A.
函数aout = a(n,mu)%a(n,mu)。用于HPL-AI基准的矩阵。mu通常在[-1,1]中。我= 1:n;j = i';aout = 1./(i+mu2j+n)+眼睛(n,n);结尾

如果不等于+1,这个矩阵不是cauchy。而如果不等于-1,它不是toeplitz。此外,如果大于-1,它是对角线的主导,正如我们将看到的那样,非常好的条件。

实例

这是5x5,具有合理的输出。什么时候是+1,我们得到对称Hilbert矩阵的一部分加上对角线上的1。

总体安排老鼠mu=1;A(n,mu)
ans=8/7 1/8 1/9 1/10 1/11 1/8 10/9 1/11 1/12 1/9 1/10 12/11 1/12 1/13 1/10 1/11 1/12 14/13 1/14 1/11 1/11 1/12 1/13 1/14 16/15

什么时候是-1,矩阵远非对称。远西南角的元素几乎占据了对角线。

mu = -1;a(n,mu)
ans=6/51/61/71/81/91/46/51/61/71/81/31/416/516/516/616/717/211/311/311/416/516/5

动画

这是矩阵的动画而没有添加眼睛(n,n).作为走到-1到1,A(n,mu)-眼(n,n)从非对称性到对称。

高斯消去

如果mu> -1,则最大元素位于对角线上lu(a(n,mu))没有枢转。

总体安排短的mu = -1 [l,u] = lu(a(n,mu))mu = 1 [l,u] = lu(a(n,mu))
mu=-1 L=1.0000 0 0 0.2083 0.0000 0.2778 0.1748 1.0000 0.4167 0.2265 0.1403 1.0000 0.8333 0.3099 0.1512 0.0839 1.0000 U=1.2000 0.1667 0.1429 0.1250.1111.1653 0.1369 0.1168 0.1019 0 0 1.1364 0.1115 0.0942 0 0 0 0 0 1.1058 0.0841 0 0 0 0 0 0 0 0 0 1.0545 mu=1 L=1.1090.070.070.070.0 0 0.070 0 0 0 0.0709 0.0626 1.0000 0.0795 0.0669 0.0580 0.0513 1.0000 U=1.1429 0.1250 0.1111 0.1000 0.0909 0 1.0974 0.0878 0.0800 0.0734 0 1.0731 0.0672 0.0622 0 0 1.0581 0.0542 0 0 0 1.0481

条件

让我们看看2-条件数$\sigma\u 1/\sigma\u n$如何随着参数的变化而变化。在我的笔记本电脑上计算以下图中所有矩阵的奇异值需要10分钟多一点。

西格玛1

负载hplai.mat.S1Nsurf(mu,n,s1)视图(25,12)xlabel('亩')ylabel(“不”)set(gca,“xlim”,[-0.9 1.0],......'xtick',[-0.9 -0.5 0 0.5 1.0],......'ylim',[0 2500])标题(“\sigma_1”)

颜色随时间而变化从-0.9达到1.0时变化。我远离了= -1.0矩阵丢失对角线的优势。其他横轴是矩阵顺序N. 我有有限的N在这些实验中,我们发现了2500个。

要做的那一点是如果> -0.9,那么最大的奇异值是有界的西格玛1<2.3。

西格玛

冲浪(MU,N,SN)视图(25,12)Xlabel('亩')ylabel(“不”)set(gca,“xlim”,[-0.9 1.0],......'xtick',[-0.9 -0.5 0 0.5 1.0],......'ylim',[0 2500])标题(“\sigma\u n”)

如果>-0.9,那么最小的奇异值实际上离零有界西格玛> .75.

西格玛1/西格玛n

surf(mu,n,s1./sn)视图(25,12)xlabel('亩')ylabel(“不”)set(gca,“xlim”,[-0.9 1.0],......'xtick',[-0.9 -0.5 0 0.5 1.0],......'ylim',[0 2500])标题('\ sigma_1 / \ sigma_n')

如果> -0.9,2-NOR中的条件号是有界的,西格玛1/西格玛n<2.3/.75$\约3.0美元。

溢流

HPL-AI基准将通过使用16位计算该矩阵的LU分解来开始半精度浮点运算,FP16。因此,如果矩阵的阶数N大于65504.这个值是最大正浮点数,可在FP16中表示的最大数字。的任何较大值N溢出到Inf.

我们必须对这件事做一些调整N> 65504.现在,我没有看到这可能是什么。

FP16的替代半精度格式是BFLOAT16,在指数中有三个比特最大正浮点数=3.39e38。使用Bfloat16生成此矩阵时,应该没有溢出问题。

谢谢

感谢Piotr Luszczek与我一起工作。我们有更多的工作要做。




与MATLAB®R2019b一起发布

|

注释

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。