本文共 985 字,大约阅读时间需要 3 分钟。
这两天在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); 试了半天, 最终返回的矩阵都是全零矩阵, 所以希望大家注意
转载地址:http://nsxdi.baihongyu.com/