CN113377534A - 一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 - Google Patents
一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 Download PDFInfo
- Publication number
- CN113377534A CN113377534A CN202110636177.0A CN202110636177A CN113377534A CN 113377534 A CN113377534 A CN 113377534A CN 202110636177 A CN202110636177 A CN 202110636177A CN 113377534 A CN113377534 A CN 113377534A
- Authority
- CN
- China
- Prior art keywords
- thread
- matrix
- simulation
- vector multiplication
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 65
- 238000004364 calculation method Methods 0.000 title claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000003044 adaptive effect Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 22
- 230000007717 exclusion Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 238000007639 printing Methods 0.000 claims description 2
- 241001522296 Erithacus rubecula Species 0.000 claims 1
- 238000005457 optimization Methods 0.000 abstract description 9
- 230000001133 acceleration Effects 0.000 abstract description 4
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 abstract 2
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- -1 and meanwhile Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,该方法首先根据现有的方法进行空间局部性优化,循环效率优化与访存效率优化;根据现有硬件资源的配置与仿真情况,自适应的开辟合理数目的线程,优化加锁解锁方式使线程池更高效;针对cache missing问题与硬件条件完成适应性的亲和性设置。本发明基于传统的CSR格式的稀疏矩阵向量乘法,充分考虑硬件资源对计算性能的限制,以及算法对计算效率与访存效率的影响;在改进原有算法基础上,模型可以资源配置与任务数目,自适应的通过基于矩阵索引的线程池与亲和性设置完成仿真加速。
Description
技术领域
本发明涉及稀疏矩阵向量乘法计算的技术领域,特别是涉及一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法。
背景技术
目前工艺的不断进步,结点的尺寸在不断缩小,导致集成电路的密集程度不断增加。尤其针对大型的存储电路(动态随机存取存储器,静态随机存取存储器,快闪存储器等),矩阵向量运算会在整个仿真中占据很大规模的时间,仿真所运算的矩阵与向量与电路规模成正比,矩阵的规模甚至会达到千万维以上。但是电路中不同的结点之间并不是全连接关系,用简单的二维数组去表示会有大量的0值,存储空间有着极大的消耗。而采用CSR格式的压缩矩阵去存储并计算这些稀疏矩阵向量乘法,虽然可以减少大量的零元素的乘法,但是依旧会存在以下问题。
要计算的矩阵中,每行非零值数目不确定,非零值位置未知,甚至要仿真的行都是要变化的,因此在不考虑并发的条件下,如何在CSR格式下调度数据并选取合理的计算方式,保证各非零值找到的同时并完成加速。
通过CSR格式压缩稀疏矩阵,顺序访问压缩矩阵元素即可完成对矩阵所有元素的访问,同时,通过对应的横坐标值,可以访问与该矩阵元素进行乘法运算的向量元素。
利用多线程是实现加速的一个重要途径,但是选取独立的计算单元保证线程之间不冲突,与如何处理多个矩阵之间运算顺序保证各个矩阵都完成仿真都是要考虑的问题,在保证这两个条件下,如何做到更快的仿真依旧是重点与难点。
矩阵数据以CSR格式在内存中进行存储,可以保证每次缓存访问都可以从内存中拿到相当比例的非零元素。在CPU对缓存中的数据访问时,在L1,L2,L3cache每次向上传递时,也都可以保证缓存命中。但是向量由内存向缓存在向CPU传递时,依旧会存在cachemissing现象。简单的利用多线程会使线程在不同core上反复调度,每个CPU core都要求对数据的重新搬运,会造成更严重的cache missing,甚至是DRAM从磁盘中调用所需数据,数据搬运所消耗的时间变得越来越重要,已不再是简单的计算密集型仿真任务,更是访存类型的问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,针对现有技术存在的仿真速度慢,读取内存中CSR格式的数据时造成不规则访问导致cache missing,带宽利用率低,多线程加速不理想以及带来的cache missing等问题。本发明为针对超大规模集成电路仿真中CSR格式的稀疏矩阵向量乘法,提供一种能优化计算结构与多线程调度方式,能够充分利用硬件CPU并行资源,自适应完成亲和性设置来实现SPMV(稀疏矩阵向量乘法)优化的方法。
为解决上述技术问题,本发明采用的技术方案为:
一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,包括如下步骤:
步骤S1、采用最简高效循环结构,进行空间局部性优化,循环效率优化与访存效率优化;
步骤S2、引入局部变量减少冗余访存和冗余计算;
步骤S3、在利用多线程加快仿真结果方面,借鉴线程池的基本思想并对线程池进行改进;
步骤S4、采用适应性的亲和性设置。
进一步的,所述采用最简高效循环结构具体包括:
步骤S101、将所有计算整合到一个循环结构中,用以减少冗余计算;
步骤S102、按压缩矩阵元素存储顺序访存;
步骤S103、循环步长为1。
进一步的,所述步骤S2具体包括:在循环内部使用局部变量保存中间结果,然后将中间结果保存在寄存器,计算结束后再写入内存;
在循环外提前计算循环内的中间结果,在循环内使用临时变量直接使用这一中间结果。
进一步的,所述步骤S3具体包括:
步骤S301、创建代表矩阵索引的全局变量与互斥锁,并定义结构体;
步骤S302、调用仿真任务模块时将全局变量赋初值;
步骤S303、利用CPU查看指令获得服务器的CPU逻辑核个数;
步骤S304、判断要执行的矩阵数目N与硬件支持线程数目的大小;
若小于,即创建N个线程,一个线程去执行一个矩阵,直接调用相应的多线程函数,执行计算任务;
若大于或者等于,则向下执行;
步骤S305、创建服务器支持的最大线程并为每个线程所执行的函数传递所需要的参数;
步骤S306、开辟线程并执行线程函数;
步骤S307、在开辟的线程中,线程函数将传递过来的参数进行解析操作;
步骤S308、每个线程去抢夺互斥锁,获得锁的线程判断全局变量是否大于要执行的矩阵数N,其中,N代表所有要执行的矩阵数目;
若大于,该线程释放互斥锁并打破循环,结束仿真;
若小于或者等于,将全局变量赋值给某一局部变量,释放互斥锁,并执行计算任务;
步骤S309、待所有线程都结束任务后,主线程结束,完成N个矩阵仿真任务。
进一步的,所述步骤S4具体包括:
步骤S401、设置并准备位掩码;
步骤S402、将位掩码清零;
步骤S403、将第i个逻辑core设置在位掩码上;
步骤S404、将线程绑定在设置好的位掩码上;
步骤S405、判断亲和性设置是否成功,
若不成功,则打印亲和性设置异常信息,
若成功,成功继续执行上述的操作。
本发明的有益效果是:
本发明公开一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,能够高效的利用硬件资源以及带宽,极大的减少此前运算过程中的cache missing,能够快速的完成CSR格式的SPMV仿真任务。因此,相较于普通的方法完成超大规模的仿真器中的稀疏矩阵向量乘法,本方法尤其适用于大规模的服务器,极大程度发挥CPU资源的利用率。同时,相较于第三方库,该方法尤其适合CSR格式存储的稀疏矩阵。利用代码优化与亲和性做到针对性的缓存优化,利用基于矩阵索引的线程池加快矩阵运算,并可以根据系统环境适应性完成线程开辟与亲和性设置,降低仿真过程中所带来时间开销。
附图说明
图1为本发明的流程图示意图。
图2为本发明对基础代码优化的具体过程的示意图。
图3为本发明多线程并行的流程示意图。
图4为本发明亲和性设置的流程示意图。
图5为本发明亲和性设置后的原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1-图5,为提高快速电路仿真器中CSR格式的稀疏矩阵向量乘法的运算效率,本实施例提供一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,以提高仿真时的CPU计算效率与cache的访存效率。
方法包括:
首先利用空间局部性优化,循环效率优化以及访存优化实现对传统代码的改进;
其次,将优化后的代码利用改进的线程池进行进一步加速;
最后,通过对线程设置亲和性提高访存效率。
本实施例提供的基于CSR格式的高性能稀疏矩阵向量乘法计算方法,通过最简高效循环结构,优化了数据访存的空间局部性,同时实现了高效的循环效率,另外配合引入的局部变量,提高了访存效率。
采用本实施的上述计算方法,考虑多线程将原本线性执行的任务分开成若干个子任务同步执行,防止线程“堵塞”,增强程序的效率和加速能力完成提速;以及超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作的能力,开辟硬件支持的多线程数目来完成仿真。
具体的说,多线程是程序中包含多个执行流,即在一个程序中可以同时运行多个不同制的线程来执行不同的任务,允许单个程序创建多个并行执行的线程来完成各自的任务;其优点是充分利用了CPU的空闲时间片,以尽可能少的时间响应的请求,使进程的整体运行效率大大提高,并增强了应用程序的灵活性。由于同一进程中的所有线程共享同一内存,不需要特殊的数据传输机制,不需要共享存储区域或共享文件,更容易解决不同任务之间的协同操作、数据交互和资源分配等问题。
CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是这些资源经常闲置;为了有效利用这些资源,就再增加一些资源来运行第二个线程,让这些闲置资源可执行另一个线程,而且CPU只要增加少数资源就可以模拟成两个线程运作。超线程技术把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,让单个处理器就能使用线程的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作。
在快速仿真中,稀疏矩阵由网表文件中各节点所产生,由于电路的维度极高且每个节点通常只与少数节点有连接关系,因此电路方程矩阵通常是稀疏度很高的稀疏矩阵。而单个矩阵内的仿真任务并不涉及对其他矩阵空间的访问与更改,这种独立性为多线程提供了可能。
将整形变量m代表一个矩阵仿真任务中要计算的矩阵下标,即矩阵的索引。要放置在所有函数外部,当作全局变量,由于会出现多次仿真,不需要赋值,而是在仿真函数调用时赋值。
为实现后续的线程池,需要额外的引入全局互斥锁mutex并进行初始化,pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER。
定义结构体及其类型,Linux中,Pthread需要利用结构体struct去实现参数的传递;结构体中要涵盖总矩阵数int N,以及代表是第几个线程的整形参数int i。
调用仿真函数时,会提供仿真函数网表结点与int N两个参数,仿真函数首先利用系统API sysconf(_SC_NPROCESSORS_CONF)获得CPU逻辑核个数并用局部变量记录。
首先判断总矩阵数量N与服务器支持的线程数(算上超线程),如果N小于服务器支持的并发数目,那么开辟线程的数量为N即可。
利用for循环,让i在0到N之间,这样i就代表了开辟到第几个线程,并将N与i定义到结构体中并将结构体传递给开辟的线程中作为参数,用以执行线程函数。
由于此时一个线程就处理一个矩阵,完全不必要再自定义的亲和性设置,而是让系统自动的进行线程调度。每个线程函数的计算方法同上述一个矩阵的计算方法。
如果N大于等于服务器支持的线程数目,开辟的线程数目则是服务器支持的数目,即API—sysconf(_SC_NPROCESSORS_CONF)获得CPU逻辑核的个数。
此时,需要将代表矩阵索引的全局变量m初始化为0,保证计算的矩阵是从0开始的。
在for循环中,i在0到服务器支持的线程数之间,每次循环中,把N与i当作参数传递给结构体再传递给开辟的线程函数,执行线程函数。
线程函数中首先获得i与N,由于每个线程都是可能执行同一个矩阵,造成数据一致性问题,为保证数据安全,需要抢夺全局的互斥锁mutex,对于抢到互斥锁的线程为尽快释放锁,要将全局变量m赋值给临时变量,判断此时全局变量m是否大于N,一旦条件满足,说明仿真计算完毕,释放锁,用break打破最外面的循环。如果小于N,需要将将m的值传递给局部变量后再加1,为下次运算做准备,此时互斥锁资源释放。
接下来的计算任务转换为一个矩阵的计算。
为确保N个矩阵的仿真任务计算完毕,让调用线程函数的线程进行等待,即使用pthread_join()函数;如果N大于等于服务器所提供的线程数目,这时需要等待的线程数量为服务器所支持的线程数量。反之需要等待的线程数目为N。
对于自适应的亲和性设置,仅存在N大于硬件支持的线程数目,这是因为设置也需要消耗的时间,这时系统本身的调度机制就可以较好的完成仿真,另外很少会出现N很小的情况,大部分的情况下并不会出现N小于支持的线程数量。
每个线程函数都会在初始状态下获得由主线程传递的参数i,这个i代表着该线程是第几个开辟的线程,同时i取值范围与CPU逻辑核个数有关,i也隐含着第几个CPU的信息,那么就可以将该线程固定在第i个逻辑核上。
在计算之前,需要利用cpu_set_t mask在CPU上准备位掩码,用以CPU的绑定。
之后用CPU_ZERO(&mask)将位掩码清零,确保此位掩码即使之前有CPU进行绑定,也会被清理干净,不会影响本次的亲和性设置。
利用CPU_SET(i,&mask)进行设置,目的是把第i个CPU设置在位掩码上。
最后设置亲和性,pthread_setaffinity_np(pthread_self(),sizeof(mask),&mask);将线程的PID绑定在mask所相关的CPU上。完成线程在特定CPU逻辑核上的绑定。
在设置好亲和性之后,需要利用线程池完成接下来的仿真任务。
由于开辟线程的数目是与系统中的CPU个数相关的,在开辟线程这一步本身就起到了自适应性,在亲和性设置过程中,就是将第i个线程绑定在第i个逻辑核上,体现出自动根据硬件配置完成亲和性设置,如图5所示。
本发明未详述之处,均为本领域技术人员的公知技术。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (5)
1.一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,其特征在于,包括如下步骤:
步骤S1、采用最简高效循环结构,进行空间局部性优化,循环效率优化与访存效率优化;
步骤S2、引入局部变量减少冗余访存和冗余计算;
步骤S3、在利用多线程加快仿真结果方面,借鉴线程池的基本思想并对线程池进行改进;
步骤S4、采用适应性的亲和性设置。
2.根据权利要求1所述的一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,其特征在于,所述采用最简高效循环结构具体包括:
步骤S101、将所有计算整合到一个循环结构中,用以减少冗余计算;
步骤S102、按压缩矩阵元素存储顺序访存;
步骤S103、循环步长为1。
3.根据权利要求2所述的一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,其特征在于,所述步骤S2具体包括:在循环内部使用局部变量保存中间结果,然后将中间结果保存在寄存器,计算结束后再写入内存;
在循环外提前计算循环内的中间结果,在循环内使用临时变量直接使用这一中间结果。
4.根据权利要求3所述的一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,其特征在于,所述步骤S3具体包括:
步骤S301、创建代表矩阵索引的全局变量与互斥锁,并定义结构体;
步骤S302、调用仿真任务模块时将全局变量赋初值;
步骤S303、利用CPU查看指令获得服务器的CPU逻辑核个数;
步骤S304、判断要执行的矩阵数目N与硬件支持线程数目的大小;
若小于,即创建N个线程,一个线程去执行一个矩阵,直接调用相应的多线程函数,执行计算任务;
若大于或者等于,则向下执行;
步骤S305、创建服务器支持的最大线程并为每个线程所执行的函数传递所需要的参数;
步骤S306、开辟线程并执行线程函数;
步骤S307、在开辟的线程中,线程函数将传递过来的参数进行解析操作;
步骤S308、每个线程去抢夺互斥锁,获得锁的线程判断全局变量是否大于要执行的矩阵数N,其中,N代表所有要执行的矩阵数目;
若大于,该线程释放互斥锁并打破循环,结束仿真;
若小于或者等于,将全局变量赋值给某一局部变量,释放互斥锁,并执行计算任务;
步骤S309、待所有线程都结束任务后,主线程结束,完成N个矩阵仿真任务。
5.根据权利要求4所述的一种基于CSR格式的高性能稀疏矩阵向量乘法计算方法,其特征在于,所述步骤S4具体包括:
步骤S401、设置并准备位掩码;
步骤S402、将位掩码清零;
步骤S403、将第i个逻辑core设置在位掩码上;
步骤S404、将线程绑定在设置好的位掩码上;
步骤S405、判断亲和性设置是否成功,
若不成功,则打印亲和性设置异常信息,
若成功,成功继续执行上述的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110636177.0A CN113377534A (zh) | 2021-06-08 | 2021-06-08 | 一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110636177.0A CN113377534A (zh) | 2021-06-08 | 2021-06-08 | 一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377534A true CN113377534A (zh) | 2021-09-10 |
Family
ID=77576491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110636177.0A Pending CN113377534A (zh) | 2021-06-08 | 2021-06-08 | 一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377534A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118113978A (zh) * | 2024-04-03 | 2024-05-31 | 中国人民解放军国防科技大学 | 一种大型复数稀疏矩阵向量乘加速计算的数据处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521463A (zh) * | 2011-12-26 | 2012-06-27 | 杭州电子科技大学 | 一种优化Cache行为提升油藏数值模拟效率的方法 |
US8364739B2 (en) * | 2009-09-30 | 2013-01-29 | International Business Machines Corporation | Sparse matrix-vector multiplication on graphics processor units |
CN104461467A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法 |
US20160259826A1 (en) * | 2015-03-02 | 2016-09-08 | International Business Machines Corporation | Parallelized Hybrid Sparse Matrix Representations for Performing Personalized Content Ranking |
CN106407158A (zh) * | 2016-09-12 | 2017-02-15 | 东南大学 | 一种gpu加速的批处理同构稀疏矩阵乘满向量的处理方法 |
US9760538B2 (en) * | 2014-12-22 | 2017-09-12 | Palo Alto Research Center Incorporated | Computer-implemented system and method for efficient sparse matrix representation and processing |
US20190042542A1 (en) * | 2018-03-28 | 2019-02-07 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
CN111860757A (zh) * | 2019-04-29 | 2020-10-30 | 辉达公司 | 适用于神经网络的高效矩阵格式 |
-
2021
- 2021-06-08 CN CN202110636177.0A patent/CN113377534A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364739B2 (en) * | 2009-09-30 | 2013-01-29 | International Business Machines Corporation | Sparse matrix-vector multiplication on graphics processor units |
CN102521463A (zh) * | 2011-12-26 | 2012-06-27 | 杭州电子科技大学 | 一种优化Cache行为提升油藏数值模拟效率的方法 |
CN104461467A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法 |
US9760538B2 (en) * | 2014-12-22 | 2017-09-12 | Palo Alto Research Center Incorporated | Computer-implemented system and method for efficient sparse matrix representation and processing |
US20160259826A1 (en) * | 2015-03-02 | 2016-09-08 | International Business Machines Corporation | Parallelized Hybrid Sparse Matrix Representations for Performing Personalized Content Ranking |
CN106407158A (zh) * | 2016-09-12 | 2017-02-15 | 东南大学 | 一种gpu加速的批处理同构稀疏矩阵乘满向量的处理方法 |
US20190042542A1 (en) * | 2018-03-28 | 2019-02-07 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
CN111860757A (zh) * | 2019-04-29 | 2020-10-30 | 辉达公司 | 适用于神经网络的高效矩阵格式 |
Non-Patent Citations (3)
Title |
---|
周洪;樊晓桠;赵丽丽;: "基于CUDA的稀疏矩阵与矢量乘法的优化", 计算机测量与控制, no. 08, 25 August 2010 (2010-08-25) * |
白洪涛;欧阳丹彤;李熙铭;李亭;何丽莉;: "基于GPU的稀疏矩阵向量乘优化", 计算机科学, no. 08, 15 August 2010 (2010-08-15) * |
秦晋;龚春叶;胡庆丰;刘杰;: "基于CUDA编程模型的稀疏对角矩阵向量乘优化", 计算机工程与科学, no. 07, 15 July 2012 (2012-07-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118113978A (zh) * | 2024-04-03 | 2024-05-31 | 中国人民解放军国防科技大学 | 一种大型复数稀疏矩阵向量乘加速计算的数据处理方法 |
CN118113978B (zh) * | 2024-04-03 | 2024-08-09 | 中国人民解放军国防科技大学 | 一种大型复数稀疏矩阵向量乘加速计算的数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Olmedo et al. | Dissecting the CUDA scheduling hierarchy: a performance and predictability perspective | |
CA3107337C (en) | Accelerating dataflow signal processing applications across heterogeneous cpu/gpu systems | |
US11609792B2 (en) | Maximizing resource utilization of neural network computing system | |
CN109978171B (zh) | 一种基于云计算的Grover量子仿真算法优化方法 | |
US11816061B2 (en) | Dynamic allocation of arithmetic logic units for vectorized operations | |
CN109213587B (zh) | GPU平台下的多Stream并行DAG图任务映射策略 | |
CN107463442A (zh) | 一种星载多核SoC任务级负载均衡并行调度方法 | |
Kim et al. | Las: locality-aware scheduling for GEMM-accelerated convolutions in GPUs | |
CN117632530B (zh) | 基于新一代申威众核处理器的从核数量调整并行加速方法 | |
CN113377534A (zh) | 一种基于csr格式的高性能稀疏矩阵向量乘法计算方法 | |
Beaumont et al. | Comparison of static and runtime resource allocation strategies for matrix multiplication | |
CN112948136A (zh) | 一种嵌入式操作系统异步日志记录的实现方法 | |
CN111475205A (zh) | 一种基于数据流解耦合的粗粒度可重构阵列结构设计方法 | |
Ha et al. | D2. 3 power models, energy models and libraries for energy-efficient concurrent data structures and algorithms | |
CN112068955B (zh) | 一种异构多核平台处理器内的通信优化方法及电子设备 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
Raju et al. | Performance enhancement of CUDA applications by overlapping data transfer and Kernel execution | |
CN117687779B (zh) | 基于异构多核计算平台的复杂电波传播预测快速计算方法 | |
Das | Algorithmic Foundation of Parallel Paging and Scheduling under Memory Constraints | |
US20240220314A1 (en) | Data dependency-aware scheduling | |
US20240220315A1 (en) | Dynamic control of work scheduling | |
Skrinarova et al. | Parallel simulation of tasks scheduling and scheduling criteria in high-performance computing systems | |
Gustedt et al. | Automatic, abstracted and portable topology-aware thread placement | |
Dinavahi et al. | Many-Core Processors | |
CN114546643A (zh) | 面向arm架构的numa感知的并行计算方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |