【发布时间】:2016-10-21 05:38:15
【问题描述】:
我正在尝试实现这个 CUDA 示例:
http://devblogs.nvidia.com/parallelforall/efficient-matrix-transpose-cuda-cc/
因为我有 0x4000 字节可用,所以我尝试使用TILE_DIM = 128,这样
<strong>shared</strong> unsigned char tile[TILE_DIM][TILE_DIM];
大小为 0x4000 字节 = 16384 字节 = 128*128 字节。
但是,这给了我以下错误:
CUDACOMPILE : ptxas error : Entry function '_Z18transposeCoalescedPh' uses too much shared data (0x4018 bytes, 0x4000 max)
所以我在共享内存中有 0x18 (24) 个额外字节。它们来自哪里,是否可以移除它们?
我可以为 Compute 版本 2.0+ 更高版本进行编译以消除错误(我的硬件是 3.0 版),但这会使用 L1 缓存中的内存,这可能会更慢。
【问题讨论】:
-
只有在为 sm_1x 架构编译时才会出现这种情况吗?
-
不确定你的意思:“我可以为 Compute 版本 2.0+ 进行编译以消除错误(我的硬件是 3.0 版),但这会使用 L1 缓存中的内存。”