APU上的OpenCL是否能够使用整个内存?

时间:2018-05-01 23:42:48

标签: c opencl pyopencl

是否可以使用32GB的RAM构建一台机器,并使用大约28GB的OpenCL?

我目前的APU是Athlon 5350,报告的“全局内存大小”为2142658560.我在使用CL_MEM_USE_HOST_PTR的pyopencl上玩了一点,但我找不到这样做的方法。

这有可能吗? 可能和一些新一代APU一样,比如Ryzen Vega?

注意:我是一个非专业人士和新手,我没有花一个小时学习OpenCL,因为在投入金钱和时间之前,我想知道它是否有可能......很抱歉,如果这个是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

是的,可以拥有一台32GB的计算机,并将~28GB的RAM用于任何程序。在编写OpenCL程序时,必须手动完成所有内存空间管理(片上和片外)。我不认为你可以运行一个似乎直接访问RAM的OpenCL内核,但即使你可以,也不值得考虑,因为OpenCL的功能在于RAM,L2和L1的细粒度管理 - 不允许程序员将他们的程序视为仅针对RAM进行操作。

花一些时间深入了解内存管理,并牢牢掌握您的计算机以及不同大小,连接速度和连接带宽的多个内存空间。

您似乎在考虑购买大量的RAM来解决您的问题。希望您能找到更好的方法来构建您的解决方案 - 不需要购买128GB的RAM。

尽管如此,一些程序本身很难并行化。对于这些程序,您可能只想购买大量的RAM(甚至可能完全跳过OpenCL并在CPU上运行)