LINUX.ORG.RU

История изменений

Исправление CyberK, (текущая версия) :

Для того чтоб нормально ускорить всё ето нужно было сделать следушее Разбить арей на несколько частей, зависит от конкретного железа на котором бегает.

упрощеный концепт (сильно упрощенный)

создаём по потоку на каждый core

каждому из них даём брут форсить свой участок индехсов (например первому от 1 до 1000, второму от 1001 до 2000 и так далее) каждый из них работает с SIMD. получается каждая итерация обрабатывает по 4 шара.

не нужно никаких локов так как память не пересекается.

так же по томуже принципу часть шаров сливается в GPU (люди здесь правильно говорили),

там происходит тоже самое кернелы бегают по ареям и выполняют почти идентичный код от SSE только на OpenCL

в принципе можно сделать всё только на GPU, но если у меня есть допустим 8 cores на cpu, то зачем им простаивать, пусть тоже работают.

а потом просто нужен файн тюнинг для того чтоб посмотреть сколько шаров кому отдавать для обработки для того чтоб был самый оптимальный вариант на конкретном железе.

Но гарантировано будет быстрее больше чем в 16 раз.

Исходная версия CyberK, :

Для того чтоб нормально ускорить всё ето нужно было сделать следушее Разбить арей на несколько частей, зависит от конкретного железа на котором бегает.

упрощеный концепт (сильно упрощенный) создаём по потоку на каждый core каждому из них даём брут форсить свой участок индехсов (например первому от 1 до 1000, второму от 1001 до 2000 и так далее) каждый из них работает с SIMD. получается каждая итерация обрабатывает по 4 шара. не нужно никаких локов так как память не пересекается.

так же по томуже принципу часть шаров сливается в GPU (люди здесь правильно говорили), там происходит тоже самое кернелы бегают по ареям и выполняют почти идентичный код от SSE только на OpenCL

в принципе можно сделать всё только на GPU, но если у меня есть допустим 8 cores на cpu, то зачем им простаивать, пусть тоже работают.

а потом просто нужен файн тюнинг для того чтоб посмотреть сколько шаров кому отдавать для обработки для того чтоб был самый оптимальный вариант на конкретном железе. Но гарантировано будет быстрее больше чем в 16 раз.