Может ли OpenCL на APU использовать всю память?
Можно ли собрать машину с чем-то вроде 32 ГБ ОЗУ и использовать около 28 ГБ с OpenCL?
Мой текущий APU - Athlon 5350 с "глобальным объемом памяти", о котором сообщалось, 2142658560. Я немного поиграл с pyopencl с CL_MEM_USE_HOST_PTR, но я не нашел способа сделать это.
Это вообще возможно? Может быть, с каким-нибудь ВСУ нового поколения, например, с Ризеном Вегой?
ПРИМЕЧАНИЕ: я непрофессионал и новичок, я еще не потратил час на изучение OpenCL, потому что прежде чем вкладывать деньги и время в это, я хочу знать, возможно ли это вообще... так что извините, если это глупо вопрос.
1 ответ
Да, можно иметь компьютер на 32 ГБ и выделять около 28 ГБ ОЗУ для любой программы. Когда вы пишете программу OpenCL, все управление областями памяти (внутри и вне микросхемы) должно выполняться вручную. Я не думаю, что вы можете запустить ядро OpenCL, которое, похоже, имеет прямой доступ к ОЗУ, но даже если бы вы могли, об этом не стоило бы думать, потому что мощь OpenCL заключается в детальном управлении ОЗУ, L2 и L1 - не позволяя программистам считать, что их программа работает только с ОЗУ.
Потратьте некоторое время, погрузитесь в управление памятью и получите четкое представление о нескольких областях памяти вашего компьютера, имеющих различные размеры, скорости соединения и пропускную способность соединения.
Похоже, вы думаете о покупке огромного количества оперативной памяти для решения вашей проблемы. Надеемся, что вы сможете найти лучший способ для разработки своего решения, которое не требует покупки 128 ГБ ОЗУ.
Тем не менее, некоторые программы трудно распараллелить. Для этих программ вы можете просто захотеть купить тонну оперативной памяти (и, возможно, даже полностью пропустить OpenCL и запустить его на процессоре)