Радоваться ему
В смысле, почему не голый OpenCL? Потому что можно писать обобщённый код (на голом C генерики —- больновато) и потом, уже сверху лихо накручивать всякое асинхронно-парарллельное добро для масштабируемости. Почему не другие языки (C++, Python, что там ещё) — что бы радоваться F# :)
как зочем
Пишешь месяц на расте с хаскелем, начинаешь потихоньку ненавидеть программирование, но вдруг открываешь райдер со старой недоделкой на F# и как камень с души
Еще одна реализация AleaGPU ? Ну такое...Щупал, пробовал решать сложные задачи, нэ взлэтэло.
Ну да. Не скажу, что мы лучше) Тут, скорее, чисто академический интерес. Может однажды получится сделать так, чтобы и сложные задачи можно было решать. А может нет)
А не получится сложные задачи решать такими фреймворками. Все подобные фреймворки (Гибридайзер, AleaGPU и прочие) спотыкаются об одно простое ограничение. Они любят транслировать каждую функцию в отдельный кернел, а это факап архитектурный, вызов кернела дорогой(не больше нескольких десятков тысяч в секунду), а сложные задачи, особенно какие нибудь рекурсивные по дереву в обе стороны(дерево естественно представлено в GPU массивами, а рекурсивный обход итерационно) имеют десятки тысяч вызовов соответствующих матричных операций в каждую сторону, которые в случае этих фреймворков выглядят как кернел.
Это не звучит как непреодолимое ограничение и закон природы, что каждую функцию НАДО в отдельные пихать при такой трансляции? Можно ж по флоу посмотреть и собрать более вменяемое?
Можно. Только я не видел, чтобы это кто-то делал из публичных фреймворков, поэтому мало-мальски сложная задача(десятки тысяч матричных операций с парой-тройкой десятков их типов)-настает карачун. Время тратится на сам вызов кернела, а не работу GPU.
Обсуждают сегодня