【技术实现步骤摘要】
用于并行处理器的编译器
[0001]相关申请的交叉引用
[0002]本申请要求于2021年7月20日提交的美国临时专利申请63/223,571和于2022年6月29日提交的美国临时专利申请63/356,503的优先权,两者均通过引用并入本文。
[0003]本专利技术总体上涉及关联处理单元(APU)并且具体地涉及用于并行处理器的编译器。
技术介绍
[0004]可从美国GSI Technology公司商购的Gemini关联处理单元(APU)将计算概念从串行数据处理(其中,数据在处理器和存储器之间来回移动)改变为直接在存储器阵列中的海量并行数据的就地处理、计算和搜索。这种就地关联计算技术消除了处理器和存储器之间的I/O处瓶颈。数据通过内容访问并直接在存储器阵列中就地处理,而不必跨越I/O。与使用CPU和GPGPU(通用GPU)以及动态随机存取存储器(DRAM)的传统方法相比,结果是性能功率比提高了一个数量级。
[0005]GSI的Gemini APU包括按行和列排列的存储单元阵列。行中的单元由字线连接,并且 ...
【技术保护点】
【技术特征摘要】
1.一种用于在关联处理单元(APU)中并发地执行多个计算的方法,所述方法包括:在施主矩阵和左接收器矩阵中具有数据,其中,所述矩阵分别表示存储在所述APU的存储器阵列的第一部分和第二部分中的数据,并且其中,每个部分包括布置成行和列的单元,其中,激活位于不同部分中相同位置处的第一单元和第二单元提供所述第一单元和所述第二单元之间的布尔运算的结果;通过计算指示选定行的第一位向量和指示选定列的第二位向量之间的外积来创建Tartan矩阵,其中,所述Tartan矩阵表示存储在所述存储器阵列的第三部分中的数据,并且其中,在所述Tartan矩阵中具有值1的所有单元都是选定单元;以及并发地激活所述施主矩阵、所述左接收器矩阵和所述Tartan矩阵的所有单元并且将它们之间的布尔运算的结果存储在所述左接收器矩阵中,其中,新值获得于与所述Tartan矩阵中的所述选定单元位于相同行和相同列处的单元上,并且原始值保留在其他单元上。2.根据权利要求1所述的方法,其中,所述创建Tartan矩阵包括:将所述第三部分中的单元初始化为值0,以及并发地将位于所述第三部分中的所述选定行和所述选定列中的任何一个中的单元设置为值1。3.根据权利要求1所述的方法,其中,所述并发地激活还包括:并发地在存储所述施主矩阵的所有单元和存储所述左接收器矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在临时矩阵中,所述临时矩阵存储于所述存储器阵列的临时部分中;并发地在所述Tartan矩阵的所有单元和所述临时矩阵的所有单元之间执行AND布尔运算,并且将结果存储在所述临时矩阵中;并发地在所述左接收器矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;以及并发地将所述临时矩阵的所有单元复制到所述左接收器矩阵,从而在所述左接收器矩阵中提供所述施主矩阵的选定单元的值。4.根据权利要求1所述的方法,其中,所述并发地激活还包括:并发地在所述施主矩阵的所有单元和所述Tartan矩阵的所有单元之间执行AND布尔运算,并且将结果存储在临时矩阵中,所述临时矩阵存储于所述存储器阵列的临时部分中;并发地在所述左接收器矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;以及并发地将所述临时矩阵的所有单元复制到所述左接收器矩阵,从而在所述左接收器矩阵中提供所述左接收器矩阵的选定单元和所述施主矩阵的选定单元之间的XOR运算的结果。5.根据权利要求1所述的方法,其中,所述并发地激活还包括:并发地在所述施主矩阵的所有单元和所述左接收器矩阵的所有单元之间执行AND布尔运算,并且将结果存储在临时矩阵中,所述临时矩阵存储于所述存储器阵列的临时部分中;并发地在所述左接收器矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;并发地在所述Tartan矩阵的所有单元和所述临时矩阵的所有单元之间执行AND布尔运算,并且将结果存储在所述临时矩阵中;
并发地在所述左接收器矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;以及并发地将所述临时矩阵的所有单元复制到所述左接收器矩阵,从而在所述左接收器矩阵中提供所述左接收器矩阵的选定单元和所述施主矩阵的选定单元之间的AND运算的结果。6.根据权利要求1所述的方法,其中,所述并发地激活还包括:并发地在所述施主矩阵的所有单元和所述左接收器矩阵的所有单元之间执行AND布尔运算,并且将结果存储在临时矩阵中,所述临时矩阵存储于所述存储器阵列的临时部分中;并发地在所述施主矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;并发地在所述Tartan矩阵的所有单元和所述临时矩阵的所有单元之间执行AND布尔运算,并且将结果存储在所述临时矩阵中;并发地在所述左接收器矩阵的所有单元和所述临时矩阵的所有单元之间执行XOR布尔运算,并且将结果存储在所述临时矩阵中;以及并发地将所述临时矩阵的所有单元复制到所述左接收器矩阵,从而在所述左接收器矩阵中提供所述左接收器矩阵的选定单元和所述施主矩阵的选定单元之间的OR运算的结果。7.根据权利要求1所述的方法,并且还包括创建多个APU指令,包括用于创建所述Tartan矩阵的命令,以及用于在所述左接收器矩阵、所述施主矩阵和所述Tartan矩阵之间执行所述布尔运算以在所述左接收器矩阵的选定单元上提供所述运算的结果的命令。8.一种用于在关联处理单元(APU)中并发地执行多个计算的方法,所述方法包括:具有多对多位数,每对的第一数存储于存储施主矩阵的第一向量寄存器的一排的单元中,每对的第二数存储于存储左接收器矩阵的第二向量寄存器的一排中;接收指示选定区段的区段掩码位向量和指示选定排的排掩码位向量,以用于所述矩阵之间的计算;通过...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。