小编use*_*372的帖子

CUDA 中的全局内存与共享内存

我有两个 CUDA 内核可以计算类似的东西。一种是使用全局内存(myfun是一种从全局内存读取大量数据并进行计算的设备函数)。第二个内核将该数据块从全局内存传输到共享内存,以便数据可以在块的不同线程之间共享。我使用全局内存的内核比使用共享内存的内核快得多。可能的原因有哪些?

loadArray仅复制d_xto的一小部分m

__global__ void mykernel(float *d_x, float *d_y, int *d_z, float *d_u, int N, int K, int D)
{

  int tid = blockIdx.x*blockDim.x + threadIdx.x;
  int index = 0;
  float max_s = 1e+37F;


  if (tid < N)
    {

      for (int i = 0; i < K; i++)
        {

          float s = myfun(&d_x[i*D], d_y, tid);

          if (s > max_s)
            {
              max_s = s;
              index = i;
            }
        }

      d_z[tid] = index;
      d_u[tid] …
Run Code Online (Sandbox Code Playgroud)

c++ cuda gpu-shared-memory

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

在叠加图像上绘制一个矩形

我想在MATLAB(Iimagesc(data))中叠加两个图像,然后在这些图像上面绘制一个矩形.I2在以下代码中指定透明度模式.矩形在图像顶部变成一条线.谁能告诉我为什么矩形没有正确绘制?

imshow(I);           
hold on;
h = imagesc(data,[0,1]);    
hold off;
I2 = ones(height,width) * 80;
set(h, 'AlphaData', I2);
rectangle('Position',[100,100,20,20]);    
Run Code Online (Sandbox Code Playgroud)

matlab overlay

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

快速计算网格上的直方图

我有一个灰度200x200图像,我想计算图像中每个8x8窗口的强度直方图.我怎样才能快速计算出来?我现在使用for循环,但它太慢了.我目前的代码如下:

I = imread('image.jpg');
for i=1:8:height-7
    for j=1:8:width-7
       patch = I(i:i+7,j:j+7);
       % compute histogram for the patch
    end
end
Run Code Online (Sandbox Code Playgroud)

grid matlab histogram

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

标签 统计

matlab ×2

c++ ×1

cuda ×1

gpu-shared-memory ×1

grid ×1

histogram ×1

overlay ×1