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

 
 
11 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Принять и ПАРАЛЛЕЛЬНО распарсить поток 10Гбит/с. Как решаются такие задачи?
Студент заборстр...
сообщение Dec 29 2017, 03:49
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(Flip-fl0p @ Dec 29 2017, 00:33) *
Я чего-то не понимаю, но откуда Вы взяли 1000 потоков ? Данные то приходят последовательно.... Не думаю, что одновременно данные приходят сразу от 1000 устройств. А раз данные приходят последовательно, то почему бы их так-же последовательно не обрабатывать ?

Я же уже объяснял. Что "последовательно обрабатывать" даже i7 не успеет.
Что поток данных гораздо больше, чем успевает "перемалывать" даже самый крутой интеловский процессор
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Dec 29 2017, 08:24
Сообщение #32


В поисках себя...
****

Группа: Свой
Сообщений: 539
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Студент заборстроительного @ Dec 29 2017, 06:49) *
Я же уже объяснял. Что "последовательно обрабатывать" даже i7 не успеет.
Что поток данных гораздо больше, чем успевает "перемалывать" даже самый крутой интеловский процессор

Последовательная обработка или параллельная. Да какая разница то ? Данные то вы будете выплёвывать последовательно ! Поэтому зачем усложнять задачу обработкой 1000 потоков внутри ПЛИС, придумывать 1000 портовую память, потом еще придумывать арбитраж отправки данных с 1000 потоков.
А вообще странно, что Вы так ещё и не нарисовали простую блок схему вашего устройства...
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 29 2017, 08:37
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 258
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(vvvv @ Dec 24 2017, 06:56) *
Как любят все ставить диагнозы. У меня параллельно не менее 3 ников, и вы не поверите сколько ников я тут уложил на форуме в борьбе
за свободу ежиков. Не менее двух десятков точно. И большая часть из них "свои".

OFF
Вас банили или что значит уложил?
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Dec 29 2017, 15:05
Сообщение #34


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(Flip-fl0p @ Dec 29 2017, 11:24) *
Последовательная обработка или параллельная. Да какая разница то ? Данные то вы будете выплёвывать последовательно !

Да что ж до Вас доходит-то всё как до жирафа! maniac.gif
Гигабитный приемопередатчик работает в сотни раз быстрей обработчика данных.
Так понятно.
Поэтому ОЗУ обновляется приемопередатчиком в сотни раз быстрей, чем обработчик успевает их обработать

Цитата(Tpeck @ Dec 29 2017, 11:37) *
OFF
Вас банили или что значит уложил?

А что?
Разве в природе существуют люди, которых СОТНИ раз не банили на форумах рунета? cranky.gif

Хотелось бы посмотреть на таких экземпляров

Сообщение отредактировал Студент заборстроительного - Dec 29 2017, 15:07
Go to the top of the page
 
+Quote Post
Inanity
сообщение Dec 29 2017, 15:45
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 204
Регистрация: 6-07-12
Пользователь №: 72 653



Студент заборстроительного...
1. Что значит 10Gb? Если это просто скорость линка, то можно на 10Gb 1 килобайт принять, 3 часа обрабатывать и снова на тех же 10Gb передать. Т.е. линк получается 10Gb, а эффективная пропускная способность 1килобайт в 3 часа. Чувствуете разницу? Если нет, то проконсультируйтесь с человеком из вашей команды, который понимает, что происходит.

2. Предположим, что вы определили, что на линке 10Gb к вам приходит поток данных в 500Мбайт/сек (для примера). Для решения задачи нужно понимать суть алгоритма обработки. А именно, каковы требования по памяти, какова глубина конвейера. Исходя из этих данных уже более-менее можно будет прикинуть по ресурсам можно ли это сделать на ПЛИС, какие потребуются ресурсы, чтобы обработка на ПЛИС не стала "горлышком от бутылки" в потоке данных.

Уже третья страница пошла, а вы никак не можете толком сформулировать задачу. wacko.gif
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Dec 29 2017, 16:31
Сообщение #36


В поисках себя...
****

Группа: Свой
Сообщений: 539
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Inanity @ Dec 29 2017, 18:45) *
Студент заборстроительного...

Ещё раз.
Допустим данные вы нарезаете блоками по 46 байт в кадры.
Эти кадры передаёте по линку 10Gb/s.
И скорость поступления кадров будет 10Gb/"размер кадра" (разделить).

Приведу простейший пример.
Допустим у вас классический UART со классической скоростью 9600 без паритета и чётности - 8N1.
Вы передаете данные.
Данные нарезаны блоками по 8 бит, которые вы обрабатываете.
Данные окружены стартовым и стоповым бит. Т.е ваш кадр данных - 10 бит.
Итого реальная скорость поступления данных для обработки 9600/10 = 960 кадров в секунду.

С вашей задачей ситуация аналогичная.
Скорость 10Gb/s - это скорость бит в линии.
Но общаетесь то вы кадрами. И обрабатывать должны кадры.

Откуда у вас 1000 потоков взялось ?

Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Dec 29 2017, 18:54
Сообщение #37


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(Inanity @ Dec 29 2017, 18:45) *
Студент заборстроительного...
1. Что значит 10Gb? Если это просто скорость линка, то можно на 10Gb 1 килобайт принять, 3 часа обрабатывать и снова на тех же 10Gb передать. Т.е. линк получается 10Gb, а эффективная пропускная способность 1килобайт в 3 часа. Чувствуете разницу? Если нет, то проконсультируйтесь с человеком из вашей команды, который понимает, что происходит.

Вы думаете я совсем дурак?
Вы думаете, что я просто так написал, что даже i7 захлебнётся от такого потока?

Цитата(Flip-fl0p @ Dec 29 2017, 19:31) *
Ещё раз.
Допустим данные вы нарезаете блоками по 46 байт в кадры.
Эти кадры передаёте по линку 10Gb/s.
И скорость поступления кадров будет 10Gb/"размер кадра" (разделить).
...
С вашей задачей ситуация аналогичная.
Скорость 10Gb/s - это скорость бит в линии.
Но общаетесь то вы кадрами. И обрабатывать должны кадры.

Откуда у вас 1000 потоков взялось ?

А почему 46, а не 1500?
Так что "КПД" канала у меня более 90%
А про 1000 потоков уже объяснял, что данные представляют собой данные 1000 ОДИНАКОВЫХ устройств, которые нужно обрабатывать ОДИНАКОВО

Сообщение отредактировал Студент заборстроительного - Dec 29 2017, 18:55
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Dec 29 2017, 19:12
Сообщение #38


В поисках себя...
****

Группа: Свой
Сообщений: 539
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Студент заборстроительного @ Dec 29 2017, 21:54) *
Вы думаете я совсем дурак?
Вы думаете, что я просто так написал, что даже i7 захлебнётся от такого потока?
А почему 46, а не 1500?

Потому-что я не знаю как у Вас формируются кадры.
А Вы, уважаемый, игнорируете просьбы предоставить более подробное описание ! Хотя это нужно было делать в первую очередь ! И это нужно Вам, а не нам...
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 29 2017, 21:23
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 030
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Студент заборстроительного @ Dec 29 2017, 22:54) *
А почему 46, а не 1500?

Без разницы какой длины кадр.
Вы принимаете 1GB в секунду, нужно его обработать и отправить обратно.
На работу с одним байтом можно выделить не более 1нс, с пакетом - N*1нс





--------------------
Несправедливо забанен
Go to the top of the page
 
+Quote Post
krux
сообщение Dec 30 2017, 04:36
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 645
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(Студент заборстроительного @ Dec 29 2017, 21:54) *
Вы думаете я совсем дурак?

ничего личного, но начинает складываться такое мнение, да.
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Dec 30 2017, 07:45
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(krux @ Dec 30 2017, 07:36) *
ничего личного, но начинает складываться такое мнение, да.

Я же писал, что я нуб в ПЛИС. Никогда с ними дело не имел. Поэтому и тему создал, чтобы у спецов спросить, можно ли такое реализовать на ПЛИС. А Вы хамить.

Цитата(zombi @ Dec 30 2017, 00:23) *
Без разницы какой длины кадр.

Только при минимальной длине пакета "КПД" канал 4%, а при максимальной - 90%.
А Вы говорите "какая разница"

Цитата(zombi @ Dec 30 2017, 00:23) *
Вы принимаете 1GB в секунду, нужно его обработать и отправить обратно.
На работу с одним байтом можно выделить не более 1нс, с пакетом - N*1нс

Ну по самым грубым прикидками где-то так.
А я прикидывал так.
Каждое удаленное устройство описывается дампом в 64 байта.
Всего устройств - 1000.
Значит данные всех устройств занимают 64 000 байт
Скорость порядка 1 000 000 000 байт/сек
Значит скорость обновления инфы 64 000/1 000 000 000 = 64 мкс

Т.е. в дампы каждого из 1000 устройств каждые 64 мкс поступает очередная порция инфы объемом 64 байта
При обработке инфы полученной от устройства нужно анализировать не только последний 64-х байтный блок, но и 9 предыдущих.

Таким образом ты за 64 мкс должен обработать блок длиной 640 байт.
Казалось бы не много.
Но если обработку вести последовательно для всех 1000 устройств, то ты должен тратить на обработку 640-ка байтного блока: 64мкс/1000=64нс

Таким образом в среднем на обработку 1 байта нужно тратить не более 0,1 нс, а не 1 нс, как Вы посчитали.

А реально для улучшения точности и адекватности результатов нужно КАЖДЫЙ РАЗ анализировать не 10, а 100 последних блоков, плюс сравнить результаты с результатами других устройств.

Таким образом за 64 мкс ты будешь должен для каждого устройства перелопатить не 640 байт, а, как примеру 64 кбайта. Тогда чтобы успеть обработать данные всех 1000 устройств получается, что 1 байт ты должен обрабатывать за 0,001нс
А если сеть будет расти и будет не 1000 устройств, а 10000?
И сеть будет не 10G, а 100G?

Тогда я байт ты должен обрабатывать за 0,0001 нс

Даже при тактовой 5ГГц получается, что за 1/2000 такта нужно обработать 64 кбайта.
А даже при ширине шины 256 бит только чтобы прочесть 64 кбайт данных из ОЗУ потребуется минимум 2000 тактов

Сообщение отредактировал Студент заборстроительного - Dec 30 2017, 07:51
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Dec 30 2017, 08:34
Сообщение #42


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



Студент,
трудно, конечно, проникнуться вашими выкладкам...
Попробуйте зайти с другого боку в своих рассуждениях.

У вас на входе поток данных, каждые 6.4нс вы принимаете 8 байт данных по 10G.
Вы говорите, что блок обработчик данных имеет пропускную способность 10Мбит/c.
Посмотрите на зависимость данных в вашем алгоритме, можно ли обработку разложить
на N стадий последовательно идущих друг за другом. Если это так, то можно сделать
pipeline который будет работать на частоте потока данных 156Мгц.
Преимущество pipeline в том, что на каждом такте потребляется одна порция данных и
воспроизводиться одна порция данных. Работа идет на максимальной пропускной способности сети.
В таком случае, не надо ни чего параллелить, один инстанс ядра.

Да, конечно, для pipeliene нужно будет правильно формировать сигналы управления.
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Dec 30 2017, 09:44
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Mad_max
Можно конечно поизвращаться с оптимизацией данного конкретного алгоритма.
А если придется изменить алгоритм - мне заново перепроектировать систему?
Это никуда не годиться
Я хотел бы получить УНИВЕРСАЛЬНУЮ "зубодробилку", работающую в 1000 потоков параллельно

Сообщение отредактировал Студент заборстроительного - Dec 30 2017, 09:45
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 30 2017, 10:09
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 3 853
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Студент заборстроительного @ Dec 30 2017, 12:44) *
Mad_max
Можно конечно поизвращаться с оптимизацией данного конкретного алгоритма.
А если придется изменить алгоритм - мне заново перепроектировать систему?
Это никуда не годиться
Я хотел бы получить УНИВЕРСАЛЬНУЮ "зубодробилку", работающую в 1000 потоков параллельно

немного про оптимизацию...
До сих пор не сказано о том, как работают датчики.
Если имеется в виду большой физический объект, то обычно в разных ветвях алгоритма информация от датчиков имеет разное значение. Например выпущены ли шасси имеет смысл проверять только при взлете... Поэтому сомнительно, что все 1000 датчиков имеют равное значение по требуемому быстродествию... А это значит, что датчики можно разделить по группам и опрашивать с разной периодичностью...
Далее. Не сказано о взаимосвязи датчиков. Не бывает, чтобы алгоритм в одной какой-то ветви требовал полностью информацию обо всех 1000 датчиков. А это значит, что физически схему контроля датчиков можно разнести по разным физическим устройствам обработки. Ну, естественно, что часть датчиков будет обмолачиваться разными устройствами....
Ну и наконец, при таком большом количестве датчиков и большой "завязке" между ними в алгоритме, наверняка потребуется все разделить на две части. Одна будет только снимать информацию с объекта, а другая - ее обрабатывать...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Dec 30 2017, 11:26
Сообщение #45


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(iosifk @ Dec 30 2017, 13:09) *
немного про оптимизацию...
До сих пор не сказано о том, как работают датчики.
Если имеется в виду большой физический объект, то обычно в разных ветвях алгоритма информация от датчиков имеет разное значение. Например выпущены ли шасси имеет смысл проверять только при взлете... Поэтому сомнительно, что все 1000 датчиков имеют равное значение по требуемому быстродествию... А это значит, что датчики можно разделить по группам и опрашивать с разной периодичностью...
Далее. Не сказано о взаимосвязи датчиков. Не бывает, чтобы алгоритм в одной какой-то ветви требовал полностью информацию обо всех 1000 датчиков. А это значит, что физически схему контроля датчиков можно разнести по разным физическим устройствам обработки. Ну, естественно, что часть датчиков будет обмолачиваться разными устройствами....
Ну и наконец, при таком большом количестве датчиков и большой "завязке" между ними в алгоритме, наверняка потребуется все разделить на две части. Одна будет только снимать информацию с объекта, а другая - ее обрабатывать...

Вот опять.
Мне в очередной раз предлагают подумать над тем как НЕ обрабатывать поток 10G в 1000 потоков..
Как используя разные грязные хаки, привязанные к данному конкретному случаю уменьшить объём вычислений в разы или даже на порядки. maniac.gif
А у меня задача сделать УНИВЕРСАЛЬНУЮ "числодробилку" без привязки как какому-то конкретному случаю. Без разных хаков, работающих только при определенных условиях.
Мне нужно, чтобы "числодробилка" могла использоваться в ЛЮБЫХ случаях, а не только в каких-то конкретных

Цитата(Flip-fl0p @ Dec 29 2017, 22:12) *
А Вы, уважаемый, игнорируете просьбы предоставить более подробное описание ! Хотя это нужно было делать в первую очередь ! И это нужно Вам, а не нам...

Ну вот Вам картинка, как примерно должно всё выглядеть:


Сообщение отредактировал Студент заборстроительного - Dec 30 2017, 11:16
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th April 2018 - 20:32
Рейтинг@Mail.ru


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