【技术实现步骤摘要】
本专利技术公开一种基于gpu优化通用计算的方法和设备,依据opencl和cuda编程标准,设计相关算法,提高了运算效率,提高了易用性,并且改进gpu设备的设计,加速了gpu通用计算效率。
技术介绍
1、基于opencl或者cuda计算工具库,现在的gpu计算都是先确定总任务量,指定总线程数,然后指定每一个工作组(group)或者线程块(block)中的线程数,在opencl是group,在cuda是block。这种编程方式导致在总任务量一定的情况下,建立一个核函数,后面任务量发生改变的时候,必须建立另外一个核函数。需要cpu的参与调用这些不同的核函数,这使得程序的代码量增加,复杂性增加,易用性降低,运行效率低下。在gpu中编程不能像在cpu中那样自由,可以连续的编程,接受任意数量的不同的任务,而是受到总任务量的限制。另外在硬件设计上,现存gpu在一个group或者block中线程数受到限制,比如英伟达公司的rtx3090显卡有10496个流处理器,但是一个group里面最多只能运行1024个线程,障碍函数只能阻挡一个group里面102
...【技术保护点】
1.基于GPU优化通用计算的方法和设备,其特征在于,基于opencl或者CUDA,将局部线程量,即一组(group)或者一块(block)线程量,与总的线程量设置为相等。其特征在于,这个固定不变的线程量要连续处理任意的不同的任务量。
2.根据权利要求1,其特征在于对要处理的数据进行划分,给每个线程分配任务。待处理的数据划分为两个部分,假设第一部分数据量为m,则m=(T/lsize)*lsize,假设第二部分数据量为s,s=T%lsize,也就是说m是T中能整除lsize的部分,s是T扣除m剩余的部分。其中T=m+s。
3.根据权利要求2,其特征
...【技术特征摘要】
1.基于gpu优化通用计算的方法和设备,其特征在于,基于opencl或者cuda,将局部线程量,即一组(group)或者一块(block)线程量,与总的线程量设置为相等。其特征在于,这个固定不变的线程量要连续处理任意的不同的任务量。
2.根据权利要求1,其特征在于对要处理的数据进行划分,给每个线程分配任务。待处理的数据划分为两个部分,假设第一部分数据量为m,则m=(t/lsize)*lsize,假设第二部分数据量为s,s=t%lsize,也就是说m是t中能整除lsize的部分,s是t扣除m剩余的部分。其中t=m+s。
3.根据权利要求2,其特征在于把数据划分为两个部分,应用此方法进行的求和的方法以及核函数代码。
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。