Недавно я прочитал paper о предстоящем обобщенном синтезе потоков в библиотеках vector
и DPH
. Это, кажется, очень интересное развитие. Сейчас я начинаю экспериментировать с DPH
(начиная с GHC 7.6 и планирую обновить до версии 7.8 SIMD, когда он появится). Я также вижу из документации Repa
, что он может работать с параллельным массивом. Repa
кажется зрелой версией по сравнению с DPH
, которая не считалась готовой с точки зрения GHC 7.4. Теперь, когда созревает DPH
, мне интересно, какие основные плюсы и минусы между пакетами Repa
и DPH
, начиная с GHC 7.6. Я искал StackOverflow и google, но не смог найти сравнения между Repa
и DPH
. Следовательно, этот вопрос.Разница между Repa и DPH
ответ
От the page about DPH на HaskellWiki:
DPH фокусируется на нерегулярной параллелизм данных. Для регулярного параллельного кода данных в Haskell, пожалуйста, рассмотрите возможность использования библиотеки Companion Repa, которая основывается на инфраструктуре параллельных массивов DPH.
, поэтому никаких других существенных различий между Repa и DPH не было? Например, как насчет обобщенных команд слияния потоков и simd - будут ли они доступны в Repa? В документе основное внимание уделялось Vector и DPH, без упоминания о Repa (за исключением краткого введения). Вот почему я думал, что Repa может быть на пути к замене DPH, и начал думать о различиях, которые помешали бы этому. – Sal
@sal в соответствии с Беном Липпмайером, потоковое слияние находится на пути в Repa 4 ([link] (https://groups.google.com/d/msg/haskell-repa/Wm5ZIKhOI5g/UcdYgN1PtdsJ)). Поддержка SIMD-инструкций - это не библиотека, а компилятор. Насколько я понимаю ситуацию, в течение некоторого времени будет достаточно подчиниться некоторым условиям и предоставить флаги компиляции GHC для получения векторизованного машинного кода из простого Haskell. Библиотеки, такие как 'vector',' repa', 'dph', будут просто следовать этим правилам. – leventov
@leventov: Правильный ответ. Вероятно, вы должны перенести его на реальный ответ, чтобы вопрос мог быть отмечен как ответ. –