matlab中cuda编程中分配grid和block dimension的时候的注意事项

23 篇文章 0 订阅

这两天在MATLAB里面用CUDA, 结果老是不对, 找了半天才发现, 原来是分配的问题


所以提醒小伙伴们, 分配的时候先看下你的GPU性能



>> gpuDevice

ans = 

  CUDADevice (具有属性):

                      Name: 'Quadro K2000'
                     Index: 1
         ComputeCapability: '3.0'
            SupportsDouble: 1
             DriverVersion: 7.5000
            ToolkitVersion: 7.5000
        MaxThreadsPerBlock: 1024
          MaxShmemPerBlock: 49152
        MaxThreadBlockSize: [1024 1024 64]
               MaxGridSize: [2.1475e+09 65535 65535]
                 SIMDWidth: 32
               TotalMemory: 2.1475e+09
           AvailableMemory: 1.6566e+09
       MultiprocessorCount: 2
              ClockRateKHz: 954000
               ComputeMode: 'Default'
      GPUOverlapsTransfers: 1
    KernelExecutionTimeout: 1
          CanMapHostMemory: 1
           DeviceSupported: 1
            DeviceSelected: 1



MaxThreadsPerBlock: 1024

其中这段话关键, 如果你是block是二维的话,那么你的threadsPerBlock.x * threadsPerBlock.y 不能大于1024.


我用dim3 threadsPerBlock(256, 256); 试了半天, 最终返回的矩阵都是全零矩阵, 所以希望大家注意



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值