这是我到目前为止编写的设备代码。
__global__ void syndrom(int *d_s, int *d_cx) {
int tid = threadIdx.x + blockDim.x * blockIdx.x + 1;
int t2 = 5460;
int N_BCH = 16383;
if (tid <= t2) {
d_s[Usetid] = 0;
for (int j = 0; j < N_BCH; j ++) {
if (d_cx[j] != 0) {
d_s[tid] ^= d_alpha_to[(tid * j) % N_BCH];
}
}
d_s[tid] = d_index_of[d_s[tid]];
}
}
我在主持人里叫它
dim3 grid(96);
dim3 block(256);
但是速度不是很好,我想寻求帮助。谢谢。
答案 0 :(得分:0)
这不是Complete and Verifiable Example,您应该在StackOverflow上提供它(例如-is d_alpha_to
?),但是我仍然可以提出一些建议:
d_s[tid]
放入局部变量(将放置在寄存器中),在该变量上进行处理,完成后,将其写回。访问全局内存显然比访问寄存器要慢得多。__restrict__
装饰指针(并使d_cx成为const
指针)。了解有关__restrict__
here的更多信息。