Цитата(V_G @ Oct 8 2017, 05:08)

Да, если блоки 2 параллельно обрабатывают входные данные, увеличивайте число блоков 2. Если нет, вводите блоки 3, параллельно работающие с блоками 2.
Либо миритесь с частичной потерей входных данных
Да, блоки 2 работают параллельно. Увеличить количество блоков 2 не получится - потому что их и так наставлено столько, что они полностью покрывают входные данные. То есть, входные данные для блоков 2 - вектор из 1024 элементов, каждому блоку 2 надо 4 элемента из этого вектора (для всех блоков это уникальный набор из 4х элементов вектора). Соответственно, делаю 256 параллельно работающих блоков 2. Вся проблема именно в рекурсии. А вообще есть какие-нибудь примеры параллелизации и конвейеризации рекурсивных алгоритмов под ПЛИС или DSP процы? Желательно, чтобы и вх. данные при этом не терялись, или терялись по минимум и можно было бы как-то оценить эти потери.
Вообще, у меня есть на примете одна идея как это можно сделать, но при таком раскладе получится ~256*200 блоков 2 + ещё некоторый дополнительный расход памяти, и есть сильное подозрение, что это будет из разряда невпихаемого в никакой ПЛИС.
Если тут есть опытные пользователи жирных плисин типа Virtex-7, прошу помочь хотя бы на глазок прикинуть "впихаемость" проекта в такого типа ПЛИС.
Если все же пытаться реализовать вариант с 256*200 блоков 2...
Имеем:
-) 4096 параллельно выполняющихся умножений и вычитаний
-) 4*256*200 параллельных сложений
-) + еще 256 параллельных сложений, но уже в другом блоке
-) 256*200 определений наибольшего из 4х чисел
-) +еще 4 определения наибольшего числа из 256 чисел
Есть надежда?
Сообщение отредактировал sqrt(2) - Oct 8 2017, 20:37