发明名称 使用单一指令多重资料(SIMD)暂存器之小矩阵的有效乘法
摘要 说明一种矩阵乘法之例,其减少在SIMD处理器上的计算时间。此矩阵乘法需要将被乘数矩阵c之每一对角线载入于处理器之不同的暂存器中,并依行顺序将乘数矩阵a载入于至少一暂存器中。暂存器中之乘数矩阵a之每一行中的乘法及加法元素藉由移位一元素来作选择性移位,一行的最后一个元素移位至该行的前头。被乘数矩阵c之对角线被乘以乘数矩阵a的诸行,且将其乘积加到乘积的和中以供结果矩阵的诸行用。
申请公布号 TWI276972 申请公布日期 2007.03.21
申请号 TW092131106 申请日期 2003.11.06
申请人 英特尔股份有限公司 发明人 威廉 梅西二世
分类号 G06F15/80(2006.01);G06F17/10(2006.01) 主分类号 G06F15/80(2006.01)
代理机构 代理人 林志刚 台北市中山区南京东路2段125号7楼
主权项 1.一种矩阵乘法方法,包含: 将被乘数矩阵c之每一对角线载入于处理器可存取 记忆体中, 依行顺序而将乘数矩阵a载入于处理器可存取记忆 体中, 藉由移位一元素而将乘数矩阵a之每一行的元素移 位入暂存器中,且一行的最后一个元素移位至该行 的前头,及藉由将乘数矩阵a的诸行乘上被乘数矩 阵c的诸对角线,且将其乘积加到乘积的和中以供 结果矩阵之诸行用。 2.如申请专利范围第1项所述之方法,其中,该处理 器可存取记忆体为一SIMD暂存器。 3.如申请专利范围第2项所述之方法,另包含载入一 对角线于处理器之多个SIMD暂存器中。 4.如申请专利范围第1项所述之方法,其中,乘数a矩 阵在与被乘数c矩阵之对角线相乘之前,藉由堆叠 乘数矩阵a之拷贝于彼此之顶部上来调整其长度, 俾诸行对齐,且一拷贝之顶列系在一底列及任何其 他拷贝之下,以延伸每一行。 5.如申请专利范围第1项所述之方法,其中,被乘数 矩阵c之对角线较乘数矩阵a之行短。 6.如申请专利范围第1项所述之方法,其中,被乘数 矩阵c之对角线较乘数矩阵a之行长。 7.如申请专利范围第1项所述之方法,其中,移位该 等元素另包含依预定顺序,以c之一对角线乘上a之 诸行;及移位并以c之次一对角线乘上a之诸行。 8.如申请专利范围第1项所述之方法,其中,移位该 等元素另包含使用一位元组置换操作来转动诸元 素。 9.如申请专利范围第1项所述之方法,其中,各元素 为一位元组。 10.如申请专利范围第1项所述之方法,其中,乘诸对 角线另包含MAC运算之应用。 11.一种包含一储存媒体之物件,该储存媒体具有指 令储存于其上,该等指令当由一机器来予以执行时 将导致: 将被乘数矩阵c之每一对角线载入于处理器可存取 记忆体中, 依行顺序而将乘数矩阵a载入于处理器可存取记忆 体中, 藉由移位一元素而将乘数矩阵a的每一行的元素移 位入暂存器中,且一行的最后一个元素移位至该行 的前头,及 藉由将乘数a矩阵的诸行乘上被乘数c矩阵的诸对 角线且将其乘积加到乘积的和中以供结果矩阵之 诸行用。 12.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,该处理器可存 取记忆体为一SIMD暂存器。 13.如申请专利范围第12项所述之包含具有指令储 存于其上之储存媒体的物件,其中,载入一对角线 于处理器之多个SIMD暂存器中。 14.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,乘数a矩阵在与 被乘数c矩阵之对角线相乘之前,藉由堆叠乘数矩 阵a之拷贝于彼此之顶部上来调整其长度,俾诸行 对齐,且一拷贝之顶列系在一底列及任何其他拷贝 之下,以延伸每一行。 15.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,被乘数矩阵c之 对角线较乘数a矩阵之行短。 16.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,被乘数矩阵c之 对角线较乘数a矩阵之行长。 17.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,移位乘法及加 法元素另包含依预定顺序,以c之一对角线乘上a之 诸行;及移位并以c之次一对角线乘上a之诸行。 18.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,移位乘法及加 法之元素另包含使用一位元组置换操作来转动诸 元素。 19.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,乘诸对角线另 包含MAC运算之应用。 20.如申请专利范围第11项所述之包含具有指令储 存于其上之储存媒体的物件,其中,各元素为一位 元组。 21.一种矩阵乘法系统,包含: 一处理器,具有暂存器,该等暂存器将被乘数矩阵c 之每一对角线载入于处理器可存取记忆体中,且依 行顺序而将乘数矩阵a载入于处理器可存取记忆体 中,及 控制逻辑,藉由移位一元素而将乘数矩阵a之每一 行之相乘及相加元素移位入暂存器中,且一行的最 后一个元素移位至该行的前头,及藉由乘数矩阵a 之诸行乘上被乘数矩阵c之诸对角线,且将其乘积 加到乘积的和中以供结果矩阵之诸行用。 22.如申请专利范围第21项所述之系统,其中,该处理 器可存取记忆体为一SIMD暂存器。 23.如申请专利范围第22项所述之系统,另包含载入 一对角线于处理器之多个SIMD暂存器中。 24.如申请专利范围第21项所述之系统,其中,乘数矩 阵a在与被乘数矩阵c之对角线相乘之前,藉由堆叠 乘数矩阵a之拷贝于彼此之顶部上来调整其长度, 俾诸行对齐,且一拷贝之顶列系在一底列系及任何 其他拷贝之下,以延伸每一行。 25.如申请专利范围第21项所述之系统,其中,被乘数 矩阵c之对角线较乘数a矩阵之行短。 26.如申请专利范围第21项所述之系统,其中,被乘数 矩阵c之对角线较乘数a矩阵之行长。 27.如申请专利范围第21项所述之系统,其中,移位乘 法及加法元素之控制逻辑另包含依预定顺序,以c 之一对角线乘上a之诸行;及移位并以c之次一对角 线乘上a之诸行。 28.如申请专利范围第21项所述之系统,其中,移位乘 法及加法元素之控制逻辑另包含使用一位元组置 换操作来转动各元素。 29.如申请专利范围第21项所述之系统,其中,各元素 为一位元组。 30.如申请专利范围第21项所述之系统,其中,乘诸对 角线另包含MAC运算之应用。 图式简单说明: 图1概要例举一支援SIMD暂存器之计算系统; 图2为用以记录供有效矩阵乘法用之资料之程序; 图3例举一般4x4模组式矩阵乘法; 图4例举记录供以暂存器为基础之乘法用之资料; 图5例举依据图4重新排序后之暂存器; 图6例举依据图4及5重新排序后之矩阵乘法; 图7例举模组式矩阵乘法,其中,被乘数矩阵c之对角 线中之元素的数目不等于乘数矩阵之一行中之元 素的数目; 图8例举供以暂存器为基础之乘法用之资料的重新 排序; 图9例举在依据图7及8重新排序后之矩阵乘法; 图10例举使用2x3矩阵c及3x4矩阵a之模组式矩阵乘法 ,其中,被乘数矩阵c之对角线小于乘数a; 图11例举供以暂存器为基础之乘法用之资料的重 新排序; 图12例举在依据图10及11重新排序后之矩阵乘法; 图13例举具有正则矩阵之模组式矩阵乘法; 图14例举供以暂存器为基础之乘法用之资料的重 新排序;及 图15例举在依据图13及14重新排序后之矩阵乘法。
地址 美国