小编use*_*071的帖子

"-arch sm_13"和"-arch sm_20"之间的区别是什么?

我的应用程序需要双精度计算.根据我在谷歌上发现的,我应该添加一个标志"-arch sm_13"或"-arch sm_20".

Q1:"-arch sm_13"和"-arch sm_20"有什么区别?

Q2:"-arch sm_13"和"-arch sm_20"之间的性能是否存在差异?

我的GPU:GTX 570.

谢谢.

cuda gpu gpu-programming

18
推荐指数
1
解决办法
2万
查看次数

是否可以用简单的循环替换glutMainLoop()?

是否可以glutMainLoop()用简单的循环(例如whilefor)替换,并在此循环中调用所有回调?

我做了这个,图片显示正常,但窗口(显示图片)没有响应(无法移动).

是否glutMainLoop()调用回调相比吗?

opengl glut

7
推荐指数
1
解决办法
5324
查看次数

如何在.cpp文件中包含<cuda_runtime.h>

我有问题包括<cuda_runtime.h>.cpp文件中.错误:Cannot include file: cuda_runtime.h: No such file or directory.

我试图从Rob Farber(http://www.drdobbs.com/architecture-and-design/222600097?pgno=1)中编写代码.

我之前编译过几个cuda代码,但<cuda_runtime.h>总是包含在.cu文件中.

我正在使用VS 2008 Express.

问:我是否必须以某种方式将VS链接起来以便知道在哪里寻找<cuda_runtime.h>

cuda visual-studio

5
推荐指数
2
解决办法
2万
查看次数

CUDA以及if和else if

当CUDA内核包含这样的条件代码时:

if (statement1)
  calculation1;

else if (statement2)
  calculation2;

else if (statement3)
  calculation3;
Run Code Online (Sandbox Code Playgroud)

这是否意味着计算将被序列化?

c cuda

3
推荐指数
1
解决办法
2114
查看次数

cuda线程索引

这是矩阵索引的正确表达式(dim3 threadBlock =(A,B,1),dim3 blockGrid =(C,D,1),其中A,B,C,D是某些数字)?

int i = (blockIdx.y * gridDim.x + blockIdx.x) * blockDim.x + threadIdx.x;
int j = (blockIdx.x * gridDim.y + blockIdx.y) * blockDim.y + threadIdx.y;
Run Code Online (Sandbox Code Playgroud)

c cuda

2
推荐指数
1
解决办法
2540
查看次数

cuda子矩阵

问题:

我有4个矩阵(64x64)的单精度数.需要做如下计算:

R = A * sin(B) + C * cos(D)
Run Code Online (Sandbox Code Playgroud)

理念:

加快计算使用共享内存.由于每个线程块都有(在我的GPU的情况下)16KB共享内存并且float的大小为4,因此可以在共享内存中存储4000个浮点数.因此,对于每个矩阵,使用1000个元素,每个维度为31个元素.

所以每个矩阵应分成16个子矩阵(16x16).

dim3 dimBlock(16, 16, 1)
dim3 dimGrid(4, 4, 1)
Run Code Online (Sandbox Code Playgroud)

核心:

int Tx = threadIdx.x;
int Ty = threadIdx.y;

int Bx = blockIdx.x;
int By = blockIdx.y;

int idx = Bx * blockDim.x + Tx;
int idy = By * blockDim.y + Ty;

__shared__ float s_A[16*16];
__shared__ float s_B[16*16];
__shared__ float s_C[16*16];
__shared__ float s_D[16*16];

// I am not sure how to write this part

s_A[(Tx * blockDim.x …
Run Code Online (Sandbox Code Playgroud)

cuda gpgpu

2
推荐指数
1
解决办法
570
查看次数

cuComplex.h和exp()

Q0:

是否由cuComplex.h支持exp()?

Q1:

如何写A = B*exp(i*C),其中A,B,C是相同大小的实数数组?这是正确的吗?

主要:

cuComplex A;
float B;
cuComplex c;
Run Code Online (Sandbox Code Playgroud)

核心:

c[idx] = ( 0, C[idx] );

A[idx] = B[idx] * exp( c[idx] ); 
Run Code Online (Sandbox Code Playgroud)

Q2:

cuComplex包含2个浮点数,这意味着我必须为原始矩阵分配2倍的内存.有没有办法创造纯虚数?

c cuda

1
推荐指数
1
解决办法
2853
查看次数

标签 统计

cuda ×6

c ×3

glut ×1

gpgpu ×1

gpu ×1

gpu-programming ×1

opengl ×1

visual-studio ×1