从核能否以共享内存的方式对主存执行操作
-
athread的原理是把数据从主存放到局存,因为从核在局存中处理数据比在主存中快。
但是,如果数据分块块比较大,从核LDM放不下;或者从核中传输的数据分块大但是计算少。在这些情况下,如果从核能直接访问主存地址,以共享内存方式直接在主存中进行计算,这样会方便许多。
神威平台是否支持从核以共享内存方式使用主存?从核能否直接访问主存的地址(我知道主核能直接访问从核的LDM地址)?如果不能以共享内存方式实现的话,上述问题该如何解决?
-
从核支持直接访主存,只不过延迟比较大,会影响程序性能。
这方面的知识可以查看 无锡超算官网->上机指南 《神威太湖之光并行程序设计与优化》手册,或者微信关注“无锡超算微课堂” ,查看有关SW26010架构介绍的资料
-
@桑薇 在从核中引用主存变量比在主核中引用主存变量的延迟更高,所以如果要处理大量数据的话肯定不适用。
也就是说,神威的从核一般是以分布式内存(LDM)的方式实现并行吗?不能像GPU那样一个线程块里面所有线程都以共享内存的方式实现并行吗?
上面的问题如果不用共享内存方式解决的话,用什么方式比较好?
-
每个从核的LDM是独立的
如果希望从核LDM能相互访问、能"共享”,可以试试寄存器通信
寄存器通信是指同行、同列从核的寄存器可以直接通信,从而使得从核之间的数据能互相访问、能“共享”