Tag: gpu programming

CUDA矩阵乘法中断了大型矩阵

我有以下矩阵乘法代码,使用CUDA 3.2和VS 2008实现。我在Windows server 2008 r2 enterprise上运行。 我正在运行Nvidia GTX 480.以下代码适用于“宽度”(矩阵宽度)的值高达约2500左右。 int size = Width*Width*sizeof(float); float* Md, *Nd, *Pd; cudaError_t err = cudaSuccess; //Allocate Device Memory for M, N and P err = cudaMalloc((void**)&Md, size); err = cudaMalloc((void**)&Nd, size); err = cudaMalloc((void**)&Pd, size); //Copy Matrix from Host Memory to Device Memory err = cudaMemcpy(Md, M, size, […]

printf里面有CUDA __global__函数

我目前正在GPU上编写矩阵乘法并想调试我的代码,但由于我无法在设备函数中使用printf,我还能做些什么来查看该函数内部的内容。 这是我目前的function: __global__ void MatrixMulKernel(Matrix Ad, Matrix Bd, Matrix Xd){ int tx = threadIdx.x; int ty = threadIdx.y; int bx = blockIdx.x; int by = blockIdx.y; float sum = 0; for( int k = 0; k < Ad.width ; ++k){ float Melement = Ad.elements[ty * Ad.width + k]; float Nelement = Bd.elements[k * Bd.width + […]