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

来源:互联网 发布:base64 java 保存图片 编辑:程序博客网 时间:2024/06/05 15:54

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


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



>> gpuDeviceans =   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
原创粉丝点击