fzr125
> Выйдет так же
дай-ка подумать... нет.
О. Федор
спасибо вам с кренделем и всем, кто участвовал в теме про поиск псевдокорня матрицы. очень помогли.
Ноги как-то очень неестественно согнуты. Можно с этим что-то сделать?
Sergio
Ноги - это наживное. Там главное - динамика.
Suslik
> спасибо вам с кренделем и всем, кто участвовал в теме про поиск псевдокорня
> матрицы. очень помогли.
Есть идея быстрой оптимизации (поиска минимума) на гпу.
О. Федор
> Есть идея быстрой оптимизации (поиска минимума) на гпу.
можешь рассказать суть алгоритма, я реализую на CPU, а если понравится, перенесу на GPU, м?
Suslik
Алгоритм несложный, некая модификация градиентного метода. Но его имеет смысл использовать в случае если у тебя сильно хитрый рельеф функции, ну там скажем, изогнутый овраг и т.п.
вообще тут едва ли чем-то может помочь GPU(именно в этой задаче), потому что самая долгая задача - вычисление значений минимизируемой функции. чтобы узнать её значение в каждой точке, нужно прогонять полноценную симуляцию одного забега. в общей сложности за время обучения количество забегов, которые приходится прогнать, около миллиона.
Как я понимаю функция у тебя имеет вид f(x) где x вектор размера n~10к.
Как раз поиск минимума такой функции может быть распаралелен на n тредов, поскольку компонеты x можно расчитывать паралельно.
Естественно, значение функции f вычисляется сепаратно в каждом треде, но для немножко другой координаты x.
О. Федор
> Как я понимаю функция у тебя имеет вид f(x) где x вектор размера n~10к.
верно. но чтобы вычислить значение этой функции в любой точке, нужно прогнать полноценную физическую симуляцию, от и до. на GPU это сделать нельзя.
Тебе никто не мешает в каждом треде (процессоре) куда прогнать полноценную симуляцию. Там нужно только проследить за правильным захватом общих данных из разных тредов.
О. Федор
> Тебе никто не мешает в каждом треде (процессоре) куда прогнать полноценную симуляцию.
rigid body физику ещё никто толком не считал на куде. ну и я перекомпиливать свой двиг на куду не тороплюсь.
я сейчас занимаюсь тем, что раскладываю исходную функцию в ряд по базисным и минимизирую уже в их пространстве. посмотрим, что получится.
Suslik
> я сейчас занимаюсь тем, что раскладываю исходную функцию в ряд по базисным и
> минимизирую уже в их пространстве. посмотрим, что получится.
А это что, не параллелизуемая задача?
Ты вообще еще не одной задачи не назвал, которую нельзя распараллелить.
"Ты что, не любишь кошек? Ты наверное их не умеешь готовить?"
Кстати, процедурная анимация реально возможна только на гпу. У цпу для этого тупо не хватит мощей.
Впрочем алгоритм отлаживай, это нужно по любому.
О. Федор
> А это что, не параллелизуемая задача?
ну успехов, что. будешь первым.
Suslik
Спасибо на добром слове. Кстати, сейчас смотрю Cilk++, Четыре причины, почему параллельные программы должны иметь последовательную семантику.
Эта идея, как мне кажется, может сильно облегчить параллельное программирование.
Тема в архиве.