二维动态共享存储器数组的分配方法

[复制链接]
查看11 | 回复5 | 2010-3-1 11:08:29 | 显示全部楼层 |阅读模式
前几天有一同学问我怎么在内核内分配形如extern __shared__ a[][]复制代码类型的数组,我一时还真的没办法解决,我目前的解决方法是用一维模拟。不知大家有什么办法实现没?先谢谢了!
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
目前只能形如extern __shared__ TYPE smem[][ vDim ]
vDim必须是个已知的常量(不能是动态计算出来的),在API端静态分配实际的大小时,应将尺寸设置为:uDim*vDim*sizeof( float )
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
谢谢啊!我过几天尝试一下,呵呵!不过,我还是希望能够实现那种两个下标都未知的方式,呵呵!
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
原帖由 yyfn风辰 于 2010-4-20 14:56 发表
谢谢啊!我过几天尝试一下,呵呵!不过,我还是希望能够实现那种两个下标都未知的方式,呵呵!

那你自己写个编译器吧(实际上不仅仅和编译器有关)
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
而且你使用1维声明就可以了:extern __shared__ TYPE [];计算时将索引转换成1D的就可以了,干嘛将精力用在这些没什么意义的地方
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
我也觉得是,但是感觉有的时候可能使用会方便点,呵呵!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行