共查询到10条相似文献,搜索用时 31 毫秒
1.
2.
世界首台峰值性能超过100P的超级计算机——神威太湖之光已经研制完成,该超级计算机采用了国产申威异构众核处理器,该处理器不同于现有的纯CPU,CPU-MIC,CPU-GPU架构,采用了主-从核架构,单处理器峰值计算能力为3TFlops/s,访存带宽为130GB/s.稀疏矩阵向量乘SpMV(sparse matrix-vector multiplication)是科学与工程计算中的一个非常重要的核心函数,众所周知,其是带宽受限型的,且存在间接访存操作.国产申威处理器给稀疏矩阵向量乘的高效实现带来了很大的挑战.针对申威处理器提出了一种CSR格式SpMV操作的通用异构众核并行算法,该算法从任务划分、LDM空间划分方面进行精细设计,提出了一套动静态buffer的缓存机制以提升向量x的访存命中率,提出了一套动静态的任务调度方法以实现负载均衡.另外还分析了该算法中影响SpMV性能的几个关键因素,并开展了自适应优化,进一步提升了性能.采用Matrix Market矩阵集中具有代表性的16个稀疏矩阵进行了测试,相比主核版最高有10倍左右的加速,平均加速比为6.51.通过采用主核版CSR格式SpMV的访存量进行分析,测试矩阵最高可达该处理器实测带宽的86%,平均可达到47%. 相似文献
3.
Java虚拟机使用锁机制来实现多线程共享数据结构的同步.锁机制维护的临界区通常对共享数据结构只进行读操作.只读锁是指当某个线程持有锁在只读临界区时,其他线程可以直接进入只读临界区而无需等待.只读锁能极大地提高锁机制的同步性能.Java虚拟机的锁机制可分为轻量级锁和重量级锁两层,当线程冲突时从轻量级锁转向重量级锁.本文分别从轻量级锁和重量级锁两个层次分别进行只读锁优化.轻量级锁的只读优化算法可以减少原子操作的开销;重量级锁的只读优化算法则可以使多个线程同时在只读临界区中.最后在Java虚拟机HotSpot中实现只读锁优化,并且在龙芯3A上进行实验.性能测试用例包括单线程Java程序、多线程Java程序以及SPECjvm2008.实验结果表明,上述优化方法能极大降低线程进入和退出只读临界区的开销,提高Java虚拟机的同步性能. 相似文献
4.
在并行程序中,互斥锁通常被用来避免访问共享资源时发生冲突。申威26010处理器是“神威·太湖之光”超级计算机采用的异构众核处理器,众核之间并无硬件互斥锁机制。其开发人员基于原子操作实现了一种软件互斥锁,但是该软件锁在激烈锁竞争情况下会产生大量的锁操作开销,影响了并行程序的性能。针对这一问题,提出了一种分布式传递锁机制HDT-LOCK。首先,提出并实现了基于众核上便签存储器和主存的混合分布锁来避免访存拥塞;其次,设计了基于寄存器通信和单指令多数据指令(Single-instruction Multiple-data Instruction)的锁传递机制,以进一步提高HDT-LOCK机制的吞吐量。实验结果表明,与原锁机制相比,所提HDT-LOCK机制避免了访存拥塞,并且可扩展性更佳。此外,锁传递机制使HDT-LOCK的吞吐量提升最高可达5.6倍。 相似文献
5.
6.
嵌套页表是一种硬件辅助的内存虚拟化模型,当前国产申威处理器上未能提供该模型所需的硬件支持.然而申威架构特有的特权程序可编程接口可以通过软件构建必要的底层硬件支持.该接口运行在申威硬件模式上,具有最高CPU特权级.基于这一特性,在申威平台上实现了软件平滑嵌套页表模型swFNPT,通过软件设计优化弥补了硬件支持上的不足.特... 相似文献
7.
低精度浮点数常用于深度学习加速,目前申威平台缺乏对低精度浮点数的支持,数学库的设计往往需要结合数据类型与处理器特点定制算法才能发挥出最大优势,旨在为申威1621平台设计一套支持半精度计算的超越函数。通过分析各类浮点数特性,结合申威1621的结构特点提出一种基于回乘取余查表算法。首先,对函数的定义域进行归约,生成精简的数据表;然后将回乘取余后的数值按照sign、exponent、mantissa三部分拆分计算索引;最后,查表返回结果。测试结果表明,使用回乘取余查表算法实现的半精度超越函数,相较于基于多项式近似、移位相加等算法的申威数学库及GLIBC开源数学库,性能分别提升了116%和215%。在精度需求不高的应用中既保证了正确性又大幅度提升了数学函数计算效率。 相似文献
8.
9.
10.
Java语言实现了在语言级对多线程技术的支持.多线程技术不仅能提高系统资源的利用率,而且还能提高程序的交互性能和实时控制性能.本文阐述了Java语言实现多线程的方法,分析了多线程并发执行所引起的冲突问题、Java提供的同步机制和多线程的管理策略. 相似文献