相关疑难解决方法(0)

cuda中的矩阵乘法

说我想将两个矩阵相乘,50 乘 50。我有 2 种方法来安排线程和块。

a) 一个线程来计算结果矩阵的每个元素。所以我在线程中有一个循环乘以一行和一列。

b) 一个线程来做每次乘法。结果矩阵的每个元素需要 50 个线程。乘法完成后,我可以使用二进制归约来求和结果。

我不确定该走哪条路,所以我选择了 b。这并不理想。事实上它很慢。知道为什么吗?我的猜测是线程太多并且它们大部分时间都在等待资源,这是真的吗?

cuda

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

CudaMalloc如何运作?

我正在尝试修改CUDA SDK中的imageDenosing类,我需要多次重复过滤器来捕获时间.但我的代码不能正常工作.

//开始

__global__ void F1D(TColor *image,int imageW,int imageH, TColor *buffer)
{  

const int ix = blockDim.x * blockIdx.x + threadIdx.x;
const int iy = blockDim.y * blockIdx.y + threadIdx.y;

    if(iy != 0 && iy < imageH-1  && ix < imageW)
    {

        float4 fresult = get_color(image[imageW * iy + ix]);
        float4 fresult4 = get_color(image[imageW * (iy+1) + ix]);
        float4 fresult5 = get_color(image[imageW * (iy-1) + ix]);

        float4 fresult7; 
            fresult7.x = fresult.x*0.5+fresult4.x*.25+fresult5.x*.25;
            fresult7.y = fresult.y*0.5+fresult4.y*.25+fresult5.y*.25;
            fresult7.z = fresult.z*0.5+fresult4.z*.25+fresult5.z*.25;

        buffer[imageW * iy …
Run Code Online (Sandbox Code Playgroud)

cuda

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

标签 统计

cuda ×2