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

 
 
> математика с float
billidean
сообщение Aug 15 2014, 06:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Добрый день всем.

Инструменты работы:
Циклон5Е, Квартус 13.0

Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>..
Аргументы при перемножении имеют довольно большие значения - до 200.000.000.
При делении делитель имеет довольно малое значение - порядка 1е-8.
Точности расчетов должны быть порядка 1е-8.
Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.
Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее.

Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них?

Вариант перехода на фикс.точку я рассматривал, но при таком диапазоне аргументов и результатах вычислений у меня как-то не получилось это вытянуть.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 15)
litv
сообщение Aug 15 2014, 06:45
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



"Аргументы при перемножении имеют довольно большие значения - до 200.000.000. "
А чему они равны до умножения ....?

Те если у меня после ацп данные 16 бит, потом операция скажем фильтрации 16 *16 бит - то они потом должны уже 2^32 - я в Вашей логике не ошибаюсь ?
Иначе Вам нужен при расчетах динамический диапазон 27 разрядов или 162 дБ. Космос ?
Сильно сомневаюсь что все выше написанное Вами правда, хотя .....

Операции с фикс. точкой 2^27 - все реально. Богатые на динамический дипазон заказчики должны ставить дорогие кристаллы.

Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 15 2014, 06:56
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Эти расчеты, точнее аргументы вычислений, никак не связаны с АЦП.

Диапазон входных аргументов для операций как раз и указан в первом посте (1е-8 ... 200.000.000).
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 15 2014, 08:48
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(billidean @ Aug 15 2014, 09:28) *
Добрый день всем.

Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>..
Аргументы при перемножении имеют довольно большие значения - до 200.000.000.
При делении делитель имеет довольно малое значение - порядка 1е-8.
Точности расчетов должны быть порядка 1е-8.
Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.

лучше попробуйте уточнить вопрос с точностью вычислений и алгоритмом вычислений с целью перехода целочисленное вычисления + переиспользование ресурсов
как вариант можно запустить NIOS - и там сделать все вычисления с флоатом...

какая скорость должна обеспечиваться?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 15 2014, 09:01
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Maverick @ Aug 15 2014, 12:48) *
как вариант можно запустить NIOS - и там сделать все вычисления с флоатом...


Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки).
А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 15 2014, 09:09
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(SM @ Aug 15 2014, 12:01) *
Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки).
А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS.

что да, то да.
НО billidean ничего не сказал про плис и я подумал, что плис без встроенного процессора и вариант о дополнительной/замене плис на более емкую не рассматривается, т.к. ТС спрашивает

Цитата
Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.
Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее.

Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 15 2014, 09:13
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Ну мало ли... Так, в порядке информации. Вдруг кому пригодится.
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 15 2014, 09:24
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Про точности я писал:
Цитата
Точности расчетов должны быть порядка 1е-8.


ПЛИС - без АРМа.

Другая ПЛИС - этот вариант не рассматривается, нужно именно в этой.

Меня интересуют именно сторонние вычислительные модули с плав.точкой. Кто их использовал, где брали, как с ними обстоят дела....
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 15 2014, 09:30
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(billidean @ Aug 15 2014, 13:24) *
Меня интересуют именно сторонние вычислительные модули с плав.точкой. Кто их использовал, где брали, как с ними обстоят дела....


Я сам писал, с четко нужной мне разрядностью, и без излишеств IEEE. Экономия от альтеровских где то до 25-50% по площади, смотря в какую сторону оптимизировать и сколько тактов на операцию допускается. Там сложного то ничего нет - баррелевский сдвигатель, вычислитель экспоненты (тоже ускоренный, схема типа баррелевской, только как бы наоборот), сумматоры и умножители, все тривиальное. Деление и корень, если без них никак, тут уже чуток посложнее, через Ньютона-Рафсона. Но, в общем, тоже уровень "средней школы" HDL-проектирования, то есть + неделька к сроку.
Однако в виде отдельных IP их нету... Они просто в рамках проекта внутри него.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 15 2014, 09:56
Сообщение #10


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(billidean @ Aug 15 2014, 12:24) *

как Вы реализовали алгоритм?
с перераспределением ресурсов (последовательно или частично паралельно) или делали по возможности с максимальной степенью паралеллизации?
Сколько было использовано IP core?
Вопросы к чему, что максимальное распаралеливание вычислений требует чаще всего много ресурсов, может Вам стоит сделать реализацию последовательно-паралельную или вообще последовательную, при этом использовав минимально-необходимое количество IP core. Естественно, тогда упадет скорость обработки...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 15 2014, 16:01
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



У меня используется по одному ядру на каждый тип операций (+,-,*,/,..).
Выполняется все последовательно-параллельно, т.е. однвременно выполняются только разнородные операции, например, одновременно провожу выполнение "*" и "+" и "-", и т.п.
Стараюсь ресурсов использовать по-минимуму.
Да, при таком подходе скорость обработки падает, но это все-таки не чисто последовательное вычисление, поэтому более-менее скорость устраивает.

Повторюсь, проблема в нехватке ресурсов для расширения проекта. Поэтому хочется уйти от этих "полновесных" Альтеровских ядер.

Кто-нибудь вообще использовал сторонние модули float-вычислений? Очень нужна инфа по ним.
Go to the top of the page
 
+Quote Post
goodsoul
сообщение Aug 19 2014, 06:13
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 136
Регистрация: 3-09-09
Пользователь №: 52 178



немного не по теме, но вдруг на будущее пригодится: Altera Arria 10 содержит аппаратные floating point блоки. Т.е. в A10 теперь логика на плавучку расходоваться не будет.
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 19 2014, 06:19
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Ура, конечно же, но мне это не поможет.
Go to the top of the page
 
+Quote Post
Enthusiast
сообщение Aug 27 2014, 14:53
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 25-09-09
Из: Nizhny Novgorod, Russia
Пользователь №: 52 588



Цитата(billidean @ Aug 15 2014, 10:28) *
...
Вариант перехода на фикс.точку я рассматривал, но при таком диапазоне аргументов и результатах вычислений у меня как-то не получилось это вытянуть.

"Матлаб" пробовали? Разрядность целых чисел при переводе из дробных там осуществляется почти автоматически и точность вычислений можно будет оценить наглядно. К тому же умножители можно будет подобрать таким образом, чтобы повторно их использовать, если потребуется. На бумажке давно уже никто не считает.
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Aug 28 2014, 14:14
Сообщение #15


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



http://caes.ewi.utwente.nl/index.php/resea...erial/sabrewing


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
billidean
сообщение Aug 29 2014, 09:02
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Цитата(Postoroniy_V @ Aug 28 2014, 18:14) *

Пробовал симулировать, не получается, нужна библиотека DWARE, которая вроде под какой-то платной лицензией. Да и делителя плав. я не увидел.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:52
Рейтинг@Mail.ru


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