Arrays 如何在内核中从int[,]复制到int[?

Arrays 如何在内核中从int[,]复制到int[?,arrays,aleagpu,Arrays,Aleagpu,在我的内核中,我比较了两个大的int[,]lemma和lemmaB。它们由GPU.Allocate()分配给GPU。 我的内核看起来像: 私有静态void内核(int[,]lemma,int[,]lemmaB,int[]结果,int L,int x) { var start=blockIdx.x*blockDim.x+threadIdx.x; var stride=gridDim.x*blockDim.x; 对于(变量i=开始;i

在我的内核中,我比较了两个大的int[,]lemma和lemmaB。它们由GPU.Allocate()分配给GPU。 我的内核看起来像:

私有静态void内核(int[,]lemma,int[,]lemmaB,int[]结果,int L,int x)
{
var start=blockIdx.x*blockDim.x+threadIdx.x;
var stride=gridDim.x*blockDim.x;
对于(变量i=开始;i
在计算方法中,我只在每个int[,]数组中使用int[]行/数组,我想知道如果我将每行/int[]分配给一个local数组,并使用local数组进行计算,是否可以更快地执行

但是如何从内核中的int[,]复制行/int[

私有静态void内核(int[,]lemma,int[,]lemmaB,int[]结果,int L,int x)
{
var start=blockIdx.x*blockDim.x+threadIdx.x;
var stride=gridDim.x*blockDim.x;
对于(变量i=开始;i复制(lemma1,lemma,a,b,c,d);//要复制,只需执行for循环。
for(var i=0;i<40;++i)lemma1[i]=lemma[…]
通常这个本地内存效率不高。使用共享内存可能更好。嗨,Xiang。谢谢你的评论。我正在考虑一个等效的System.Buffer.BlockCopy。我尝试了这个循环,但比原来的循环慢。