реклама на сайте
подробности

 
 
> To RAM or no to RAM - вот в чём вопрос!
m0use
сообщение Oct 5 2010, 08:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790



Привет, ребят.

Стою перед дилемой просто. Нужна обработка матриц - перемножение, сложение элементов. У меня такие мысли.

С первого взгляда, достаточно удобно описывать матрицу как RAM, особенно когда нужно перемножать элементы (на аппаратных умножителях). Но в таком случае за один CLK можно работать только с одним элементом массива (считывать из памяти). Это большое но, потому что хочется максимально распараллелить обработку матрицы. То есть хочется одновременного доступа ко всем элементам - но (и опять же но) комбинаторной логике много, наверно, получается - скорость падает.

Есть ли компромисс? Использовать небольшие блоки памяти? Подскажите, уважаемые коллеги! И вообще верны ли мои рассуждения? smile.gif.


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
m0use
сообщение Oct 6 2010, 09:23
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 6-08-10
Пользователь №: 58 790



Цитата
есть еще такой вариант: использовать RAM с шириной шины данных N*(сколько_у_вас_там_бит), соответственно можно распараллелить вычисления


Я думал так делать, но пока нацелился на конвеерный подход, который Maverick подкинул.

Цитата
еще многопортовый доступ можно задействовать.


Многопортоый? В смысле двухпортовый? Я просто сделал, чтобы за такт два значения читалось. Можно больше? Ну, это я больше из интереса спрашиваю smile.gif.

У меня просто произведения элементов матриц между собой и самих на себя требут 3 умножителей. Двухпортовое считывание позволяет 6 умножителей использовать. А подход с размерностью памяти, скажем, в три байта позволит 18 умножений делать за так. Из 20 аппаратных умножителей ещё 2 останутся - там потом ещё надо будет умножения делать. В целом, наверно, тут уже предел будет для этой ПЛИС.

Цитата
Первоисточник - в личке.


Спасибо, тема близка - думаю, мне это сильно поможет. Только вот там VHDL, который я пока не изучал smile.gif.

Длинный P.S.

У меня с этим конвеерным подходом небольшой вопрос появился. Мне нужная сумма 9 элементов на конвеере (условно горизонтальном). Соответственно, чтобы частота не падала - нужен конвеер уже в вертикальном направлении - из 8 "складывателей" smile.gif и промежуточными регистрами. Если это так, то тогда можете подсказать, как оптимально такой вопрос решать. Так как это матрица, то мне не все суммы нужны (граничные эффект - когда окно к краям матрицы подходит). Как мне следующему модулю передать только нужные суммы? Я тут три подхода вижу:

1. Передавать все, а обрабатывать только нужные.
2. Передавать только нужные каким-нибудь сигналом, что на выходе нужная сумма. Но тут такой момент возникает, что от того момента, когда на конвеере будет нужная последовательность до того, как их сумма попадёт на выход пройдёт 4 такта. То есть и сигнал нужно задерживать на столько же тактов. Это регистром сдвига делать?
3. Другой подход. Какой smile.gif ?


--------------------
Усложнять - просто, упрощать - сложно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- m0use   To RAM or no to RAM - вот в чём вопрос!   Oct 5 2010, 08:52
- - Maverick   Цитата(m0use @ Oct 5 2010, 11:52) Привет,...   Oct 5 2010, 08:57
- - rv3dll(lex)   ващето память имеет скорость больше чем остальная ...   Oct 5 2010, 10:59
|- - D13   Цитата(rv3dll(lex) @ Oct 5 2010, 17...   Oct 5 2010, 11:28
- - m0use   Цитатакакого размера матрицы? и элементы в матрице...   Oct 5 2010, 11:33
|- - Maverick   Цитата(m0use @ Oct 5 2010, 14:33) Неплохо...   Oct 5 2010, 14:02
- - Koluchiy   Маленькие блоки RAM - это распределенная RAM. Если...   Oct 5 2010, 11:44
- - m0use   ЦитатаМаленькие блоки RAM - это распределенная RAM...   Oct 5 2010, 11:58
|- - des00   Цитата(m0use @ Oct 5 2010, 06:58) Просто,...   Oct 5 2010, 12:05
- - m0use   Цитатаа ничего что латентность чтения у этих блоко...   Oct 5 2010, 12:16
- - rv3dll(lex)   вообще про какую плис речь? для памяти нужен свой...   Oct 5 2010, 12:57
- - m0use   А менеждеры клоков умеют получать из одного клока ...   Oct 5 2010, 13:08
- - m0use   ЦитатаПочему бы не взять за основу матрицу 8х6? Ка...   Oct 5 2010, 14:38
|- - Maverick   Цитата(m0use @ Oct 5 2010, 17:38) для ко...   Oct 5 2010, 14:46
|- - vadimuzzz   Цитата(m0use @ Oct 5 2010, 21:38) Теперь ...   Oct 5 2010, 22:43
|- - rv3dll(lex)   Цитата(vadimuzzz @ Oct 6 2010, 02:43) ест...   Oct 6 2010, 04:48
|- - vadimuzzz   Цитата(rv3dll(lex) @ Oct 6 2010, 11...   Oct 6 2010, 05:42
- - Koluchiy   Цитатакак по мне лучше распределенная память - на ...   Oct 5 2010, 15:08
|- - Maverick   Цитата(Koluchiy @ Oct 5 2010, 18:08) И ре...   Oct 5 2010, 16:56
- - m0use   Цитатаподелиться алгоритмом обработки изображения ...   Oct 5 2010, 16:14
- - m0use   ЦитатаНа константу или переменную? На переменную ...   Oct 5 2010, 17:39
|- - Maverick   Цитата(m0use @ Oct 5 2010, 20:18) На пере...   Oct 5 2010, 17:57
- - m0use   Офигеть! Maverick, спасибо, что поведал про та...   Oct 5 2010, 20:02
|- - Maverick   Цитата(m0use @ Oct 5 2010, 23:02) Офигеть...   Oct 6 2010, 06:26
|- - CaPpuCcino   Цитата(Maverick @ Oct 6 2010, 09:26) Перв...   Oct 6 2010, 06:51
|- - Maverick   Цитата(CaPpuCcino @ Oct 6 2010, 09:51) а ...   Oct 6 2010, 07:21
- - Koluchiy   Цитатачто делать? человек всегда становится перед ...   Oct 5 2010, 20:25
|- - CaPpuCcino   Цитата(m0use @ Oct 6 2010, 12:23) Многопо...   Oct 6 2010, 09:34
|- - vadimuzzz   Цитата(m0use @ Oct 6 2010, 16:23) Многопо...   Oct 6 2010, 09:49
|- - Maverick   Цитата(m0use @ Oct 6 2010, 12:23) У меня ...   Oct 6 2010, 13:34
- - m0use   ЦитатаПодумайте, может можно заменить операцию дел...   Oct 6 2010, 09:35
- - m0use   Цитатаможно дублировать контент (параллельная запи...   Oct 6 2010, 09:51
- - m0use   Цитатапоясните, плиз 2 пункт Неясно выразился, во...   Oct 7 2010, 14:48
|- - CaPpuCcino   Цитата(m0use @ Oct 7 2010, 17:48) Поэтому...   Oct 7 2010, 17:51
- - m0use   Ребят, всем спасибо за советы и помощь. Я бы хотел...   Oct 7 2010, 21:30
- - CaPpuCcino   Цитата(m0use @ Oct 8 2010, 00:30) Получае...   Oct 8 2010, 03:09


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01625 секунд с 7
ELECTRONIX ©2004-2016