【发布时间】:2011-07-19 19:32:38
【问题描述】:
是否真的可以在 CUDA Fortran 中分配多个共享数组,而不必求助于只有一个共享数组并使用索引偏移?
指针不起作用,“指针”和“目标”属性与“共享”属性冲突。
这就是我想要实现的目标:
attributes(global) subroutine shared_sub_arrays()
integer :: i
real, shared, dimension(*), target :: alldata
real, shared, dimension(:), pointer :: left
real, shared, dimension(:), pointer :: centre
real, shared, dimension(:), pointer :: right
i = threadIdx%x
left => alldata(1:3)
centre => alldata(4:6)
right => alldata(7:9)
left(i) = 1.0
centre(i) = 2.0
right(i) = 3.0
end subroutine shared_sub_arrays
有人知道另一种方法吗?
提前感谢您的帮助
【问题讨论】:
-
共享数组的大小在启动时是否已知?
-
我希望能够启动具有不同数组大小的多个实例,所以没有为每个数组大小编辑源代码,我需要使用动态内存分配
标签: arrays pointers cuda fortran