The invention discloses a multi GPU data communication performance optimization method considering GPU irregular memory access methods, data regrouping preprocessing of the data in the CPU end of the data will be re combined into new data for GPU access and then transmitted to the GPU memory; for redundancy in multi GPU environment the data reorganization, the cache of thought, the new data on the CPU side after the reorganization of the cached, and in subsequent GPU access only to return to CPU and by point-to-point transmission to other GPU access technology. The invention greatly reduces the irregular memory access and redundant data communication of GPU, thus improving the performance of data communication in a single CPU multi GPU environment.
【技术实现步骤摘要】
一种多GPU环境下的数据通信性能优化方法
本专利技术属于数据通信性能优化
,更具体地,涉及一种多GPU环境下的数据通信性能优化方法。
技术介绍
随着图形处理器GPU的提出,GPU越来越多地被应用于高性能计算、科学计算、机器学习和图算法等众多领域中。得益于GPU高度并行的体系结构和强大的计算能力,GPU可以显著地加速许多数据并行的应用,而且随着多GPU卡技术的成熟,越来越多地在单一节点上配置多个GPU进一步加速应用。然而很多研究表明,对于大部分应用,GPU的加速效果在很大程度上受限于CPU-GPU以及GPU-GPU间的数据通信,因此研究如何高效地在多GPU环境下进行数据通信具有重要意义。非规则应用导致的低效内存访问是严重降低通信效率的一个重要方面,因为GPU的内存结构以及非规则的数据结构,低效的内存访问会导致多次内存访问事务。目前,国内外学者已经对单GPU环境下优化非规则内存访问的方法进行了大量的研究工作。大多数的研究关注的是静态非规则内存访问,只有极少数的研究关注动态非规则内存访问。而在实际应用中,特别是分子动力学和图应用等,往往存在的是动态非规则内存访问,传统地通过改变数据存储结构等静态方法不再适用,因此,研究一种在多GPU环境下有效避免动态非规则内存访问的优化方法具有重大意义。目前,优化动态非规则内存访问的方法,主要利用动态地在GPU端数据重组和数据访问重定向来将非规则内存访问转化为规则内存访问,例如在GPU端创建规则的数据副本,将访问重定向到该数据副本;或者利用共享内存重组数据等。现存的这些优化方法,虽然一定程度上避免了动态非规则内存访问,但仍 ...
【技术保护点】
一种多GPU环境下数据通信性能优化方法,其特征在于,包括以下步骤:CPU数据重组步骤:CPU将数据划分为多段,对各数据段进行数据重组生成数据段副本,并仅将各GPU第一次需访问数据段的数据段副本传送给对应的GPU;GPU数据访问步骤:各GPU进行第一次数据段访问时,直接访问本地的数据段副本;各GPU进行余下数据段访问时,从CPU的内存中访问数据段副本。
【技术特征摘要】
1.一种多GPU环境下数据通信性能优化方法,其特征在于,包括以下步骤:CPU数据重组步骤:CPU将数据划分为多段,对各数据段进行数据重组生成数据段副本,并仅将各GPU第一次需访问数据段的数据段副本传送给对应的GPU;GPU数据访问步骤:各GPU进行第一次数据段访问时,直接访问本地的数据段副本;各GPU进行余下数据段访问时,从CPU的内存中访问数据段副本。2.根据权利要求1所述的多GPU环境下数据通信性能优化方法,其特征在于,所述余下数据段第一次被访问的具体实施方式为:当数据段D被第一次访问,CPU为请求GPU分配GPU端首地址,将数据段D的数据段副本传送给请求GPU,请求GPU按照新分配的GPU端首地址存储数据段副本。3.根据权利要求1所述的多GPU环境下数据通信性能优化方法,其特征在于,所述余下数据段第n,n>1次被访问的具体实施方式为:当数据段F被第n,n>1次访问,CPU判定请求GPU是否是首次访问该数据段,如果是进入首次访问步骤,否则进入非首次访问步骤;首次访问步骤:若CPU存储的是最新数据段副本,CPU将最新数据段副本传送给请求GPU;若CPU存储的是不是最新数据段副本,则CPU通知最近更新过数据段副本的GPU将最新数据段副本回传以及传送给请求GPU;非首次访问步骤:若GPU存储的是最新数据段副本,请求GPU直接本地读取数据段副本;若GPU存储的是不是最新数据段副本,则CPU通知最近更新过数据段副本的GPU将最新数据段副本回传以及传送给请求GPU。4.根据权利要求1或2或3所述的多GPU环境下数据通信性能优化方法,其特征在于,还为GPU访问数据段设置副本缓存记录,记录包括的信息有:数据段原始首地址、数据段副本首地址、GPU端首地址和状态位。5.根据权利要求4所述的多GPU环境下数据通信性能优化方法,其特征在于,所述各GPU进行余下数据段访问的具体实施方式为:(1)请求GPU向CPU发出包含待访问数据段原始首地址信息的访问请求;(2)CPU查询对应的副本缓存记录,从中提取GPU端首地址信息;若GPU端首地址信息为空,进入步骤(3);若GPU端首地址信息不为空,进入步骤(4);(3)CPU为第一次访问该数据段的请求GPU分配GPU端首地址,并从副本缓存记录中的CPU端首地址读取数据段副本,将数据段副本传送给请求GPU,请求GPU按照新分配的GPU端首地址存储数据段副本,CPU更新缓存记录中的GPU端首地址信息,结束...
【专利技术属性】
技术研发人员:廖小飞,郑然,刘元栋,金海,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。