新的HPL-AI基准的矩阵

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

内容

电子邮件

几周前,我收到一封来自田纳西大学的杰克·唐加拉的邮件。

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

基准测试有两个步骤:

1)用较短的精度对矩阵进行LU运算,并计算一个近似解x。(在Nvidia上,这比DP快6倍,精度是DP的一半。)

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

基准测试的细节如下:http://bit.ly/hpl-ai

对矩阵有什么想法吗?

对称的希尔伯特矩阵

我研究过的第一个矩阵是希尔伯特矩阵。利用MATLAB中的单例展开特性,可以生成传统的对称希尔伯特矩阵

格式老鼠n = 5;i = 1:n j = i' H = 1 /(i+j-1)
i = 1 2 3 4 5 j = 1 2 3 4 5 H = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9 1/4

当你加上行向量到列向量j,由此产生的我+ j是一个矩阵。把这个和内积我* j,它产生一个标量,而外产品j *我,生成另一个矩阵。表达式我+ j可以被认为是一个“外和”。

另外两个标量展开完成计算;我+ j - 1和的每个元素减去11. / (i + j - 1)分母上每个元素都除以1。这两种标量展开都在MATLAB中出现过。

希尔伯特矩阵的元素只依赖于和我+ j,所以它们在反对角线上是常数。这样的矩阵被称为柯西矩阵。在$O(n²)$时间内,有一些快速算法可以求解包含柯西矩阵的方程组。

非对称希尔伯特矩阵

几年前,我想要一个非对称测试矩阵,所以我把希尔伯特矩阵分母上的加号换成了减号。但这样就在次对角线上除以了0,所以我也把-1换成了+1/2。我称之为“非对称希尔伯特矩阵”。

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

元素只依赖于i j所以在对角线上是常数。这些矩阵是Toeplitz矩阵,同样,这样的系统可以用$O(n²)$运算来解决。

当我第一次计算非对称希尔伯特矩阵的奇异值时,我震惊了——它们中的大多数几乎等于$\pi$。只有5乘5,小数点后有5位。

格式σ=圣言(H)
Sigma = 3.141589238341321 3.141272220456508 3.129520593545258 2.921860834913688 1.461864493324889

这是一个大惊喜。最终的解释,由西摩合作者,涉及到20世纪20年代的一个Szego定理,该定理将托普里茨矩阵的特征值与傅立叶级数和方波联系起来。

基准矩阵

我和杰克的同事Piotr Luszczek一起工作。这是我们对HPL-AI基准矩阵的建议。它取决于两个参数,nμ.作为μ从1到-1,这个矩阵的核心是从对称的到非对称的希尔伯特矩阵。添加n分母和对角线上的1产生对角线优势。

一个= 1。/(i + mu*j + n) + double(i==j); /(i + mu*j + n) + double(i==j);
清晰的一个类型一个
A(n,mu) % A(n,mu)HPL-AI基准的矩阵。Mu通常在[- 1,1]中。我= 1:n;j =我;Aout = 1 /(i+mu*j+n) + eye(n,n);结束

如果μ不等于+1,这个矩阵不是柯西矩阵。而且,如果μ不等于-1,它不是托普里茨公式。此外,如果μ大于-1,它是对角占优的,我们会看到,条件很好。

例子

这是有理性输出的5x5。当μ是+1,我们得到了对称希尔伯特矩阵在对角线上的一段+1。

格式老鼠μ= 1;(n,μ)
ans = 8/7 1/8 1/9 1/10 1/11 1/8 10/9 1/10 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/12 1/13 1/14 16/15

μ为-1时,矩阵就不对称了。远西南角的元素几乎占据了对角线。

μ= 1;(n,μ)
Ans = 6/5 1/6 1/7 1/8 1/9 1/4 /5 1/6 1/6 1/7 1/8 1/3 1/4 /5 1/6 1/6 1/6 1/7 1/3 1/4 /5 1/2 1/3 1/4 /5 1/6 1/6 1/2 1/3 1/4 /6

动画

这是一个没有添加的矩阵的动画眼睛(n, n).作为μ从-1到1,(n,μ)黑眼圈(n, n)从非对称到对称。

高斯消去法

如果是> -1,最大的元素在对角线上陆((n,μ))不旋转。

格式陆μ= 1 (L U) = ((n,μ))陆μ= 1 (L U) = ((n,μ))
μ= 1 L = 1.0000 0 0 0 0 0.2083 - 1.0000 0 0 0 0 0 0 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 0.1111 1.1653 0.1369 0.1168 0.1019 0 0 0.0841 1.1058 1.1364 0.1115 0.0942 0 0 0 0 0 0 0 1.0545μ= 1 L = 1.0000 0 0 0 0 0.1094 1.0000 0 0 0 0 0 0.0875 0.0729 0.0972 0.0800 1.00000.06261.00000 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 0 1.0731 0.0672 0.0622 0 0 0 1.0581 0.0542 0 0 0 0 1.0481

条件

让我们看看两个条件数$\sigma_1/\sigma_n$如何随着参数的变化而变化。在我的笔记本电脑上计算下列图中所有矩阵的奇异值只需要10分钟多一点。

sigma_1

负载HPLAI.mats1snnμ冲浪(μ,n, s1)视图(25日12)包含(“亩”) ylabel (“n”甘氨胆酸)组(,“xlim”(-0.9 - 1.0),...“xtick”,[-0.9 -0.5 0 0.5 1.0],...“ylim”2500年[0])标题(“\ sigma_1”

颜色会随着μ从-0.9到1.0不等。我要远离μ= -1.0,此时矩阵失去对角优势。另一个横轴是矩阵的顺序n.我有有限n在这些实验中达到2500。

需要强调的是,如果μ> -0.9,那么最大的奇异值实际上是有界的sigma_1< 2.3。

sigma_n

冲浪(μ,n, sn)视图(25日12)包含(“亩”) ylabel (“n”甘氨胆酸)组(,“xlim”(-0.9 - 1.0),...“xtick”,[-0.9 -0.5 0 0.5 1.0],...“ylim”2500年[0])标题(“\ sigma_n”

如果μ> -0.9,那么最小的奇异值实际上是从0开始有界的sigma_n> 0。

sigma_1 / sigma_n

冲浪(μ,n, s1. / sn)视图(25日12)包含(“亩”) ylabel (“n”甘氨胆酸)组(,“xlim”(-0.9 - 1.0),...“xtick”,[-0.9 -0.5 0 0.5 1.0],...“ylim”2500年[0])标题(“\ sigma_1 / \ sigma_n”

如果μ> -0.9,则2-范数中的条件数是有界的,sigma_1 / sigma_n< 2.3 /。75$\approx$ 3.0 .

溢出

HPL-AI基准首先使用16位计算这个矩阵的LU分解半精确浮点运算, FP16。所以,如果矩阵的顺序n大于65504。这个值是最大浮点数, FP16中所能表示的最大数。任何更大的值n溢出来

我们需要做一些缩放n> 65504。现在,我看不出这是什么。

FP16的另一种半精度格式是Bfloat16,它在指数中多了3位最大浮点数= 3.39 e38。在使用Bfloat16生成这个矩阵时,应该不会出现溢出问题。

谢谢

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




发布与MATLAB®R2019b

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。