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

 
 
 
Reply to this topicStart new topic
> Linux на половине процессора, Одно из ядер под свою задачу другое под визуализацию.
Аматер
сообщение Oct 14 2011, 07:06
Сообщение #1


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Коллеги,

Я никогда не программировал под Linux, а сейчас камень мощный появился, можно и попробовать.

То есть планирую использовать Cortex-A9 с двумя ядрами, на одном из ядер запустить свою очень маленькую, но быструю задачу (короче 10us), а на другом linux.
Думаю про отдельное ядро, потому что latency скажем в 4 us меня совершенно не устраивает. А задача такая маленькая что в кеш должна поместится.

Как подступится к Linux понятия не имею. И вообще возможно ли сделать чтобы какой то поток исполнялся на отдельном ядре независимо от остального Linux?
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 14 2011, 16:01
Сообщение #2


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(Аматер @ Oct 14 2011, 11:06) *
Коллеги,

Я никогда не программировал под Linux, а сейчас камень мощный появился, можно и попробовать.

То есть планирую использовать Cortex-A9 с двумя ядрами, на одном из ядер запустить свою очень маленькую, но быструю задачу (короче 10us), а на другом linux.
Думаю про отдельное ядро, потому что latency скажем в 4 us меня совершенно не устраивает. А задача такая маленькая что в кеш должна поместится.

Как подступится к Linux понятия не имею. И вообще возможно ли сделать чтобы какой то поток исполнялся на отдельном ядре независимо от остального Linux?


Сделать можно все. Самое узкое место в Вашей системе - общие шины для оборудования и памяти от ядер. И еще будут некоторые проблемы с объяснением линуксу на каком ядре он должен работать, и на каком запустить вашу отдельную задачу (запускать ее будет именно линукс, тут без вариантов).
И кстати - ваш кортекс-а9 имеет 4 ядра а не 2.


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 14 2011, 18:54
Сообщение #3


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Цитата(gormih @ Oct 14 2011, 19:01) *
Сделать можно все. Самое узкое место в Вашей системе - общие шины для оборудования и памяти от ядер. И еще будут некоторые проблемы с объяснением линуксу на каком ядре он должен работать, и на каком запустить вашу отдельную задачу (запускать ее будет именно линукс, тут без вариантов).

Это у вас Cortex-A9 с четырьмя ядрами а у меня с двумя
http://www.altera.com/devices/processor/ar...-cortex-a9.html
Только я не понял почему без вариантов запускать под Linux надо?

Сообщение отредактировал Аматер - Oct 14 2011, 18:55
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 16 2011, 08:40
Сообщение #4


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(Аматер @ Oct 14 2011, 22:54) *
Это у вас Cortex-A9 с четырьмя ядрами а у меня с двумя
http://www.altera.com/devices/processor/ar...-cortex-a9.html
Только я не понял почему без вариантов запускать под Linux надо?

Потому что собрать самому ядро для одного процессора будет значительно сложнее, чем для двух. Для двух уже есть готовые реализации, которые нужно чуть подработать. Для одного Вам нужно будет славно потрудится, чтобы запустить хотя бы ядро Linux- дело неблагодарное имхо, но если есть много времени и высококлассный спец по портированию Linux ядра на новые платформы - почему бы и нет :-)


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 16 2011, 11:03
Сообщение #5


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Цитата(gormih @ Oct 16 2011, 11:40) *
Потому что собрать самому ядро для одного процессора будет значительно сложнее, чем для двух. Для двух уже есть готовые реализации, которые нужно чуть подработать. Для одного Вам нужно будет славно потрудится, чтобы запустить хотя бы ядро Linux- дело неблагодарное имхо, но если есть много времени и высококлассный спец по портированию Linux ядра на новые платформы - почему бы и нет :-)

Как то вы неопределенно говорите. Готовые реализации это hard affinity что ли?
Но я не понимаю будет ли линукс запускать что либо на ядре к которому привязана моя задача? Может ли он тормозить выполнение моей задачи? Задержка даже в 4 мкс не подходит мне. Поэтому и пытаюсь выяснить подход заранее.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 16 2011, 13:45
Сообщение #6


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Цитата(Аматер @ Oct 16 2011, 15:03) *
Как то вы неопределенно говорите. Готовые реализации это hard affinity что ли?
Но я не понимаю будет ли линукс запускать что либо на ядре к которому привязана моя задача? Может ли он тормозить выполнение моей задачи? Задержка даже в 4 мкс не подходит мне. Поэтому и пытаюсь выяснить подход заранее.


а что, задача так сложна или в ней floating point ? по описанию - задача- типовая плисовая


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 16 2011, 14:05
Сообщение #7


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Цитата(a123-flex @ Oct 16 2011, 16:45) *
а что, задача так сложна или в ней floating point ? по описанию - задача- типовая плисовая

Так она и решается сейчас на FPGA+NIOS. Но скорости не хватает. Естественно float упростит жизнь, можно будет отказатся от маштабирования для повышения точности. А fpga + DSP или внешний ARM как-то вызывают сомнения потому что время потеряется на синхронизации, предаче данных и результатов.
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 16 2011, 18:58
Сообщение #8


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(Аматер @ Oct 16 2011, 18:05) *
Так она и решается сейчас на FPGA+NIOS. Но скорости не хватает. Естественно float упростит жизнь, можно будет отказатся от маштабирования для повышения точности. А fpga + DSP или внешний ARM как-то вызывают сомнения потому что время потеряется на синхронизации, предаче данных и результатов.


Есть такие чипы - DSP и FPGA в одном корпусе (чипе). Их достаточно много. Имхо самое то для Вас :-)
А многоядерные чипы могут и не оправдать Ваших надежд... Тут как бы самое узкое место - как раз взаимодействие ядер между собой и с аппаратурой через всякие "интеллектуальные" штуки, которые могут достаточно неадекватно вести себя для Вашей задачи. (Не зная сути задачи трудно судить)


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 16 2011, 19:37
Сообщение #9


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Цитата(gormih @ Oct 16 2011, 21:58) *
Есть такие чипы - DSP и FPGA в одном корпусе (чипе). Их достаточно много. Имхо самое то для Вас :-)
А многоядерные чипы могут и не оправдать Ваших надежд... Тут как бы самое узкое место - как раз взаимодействие ядер между собой и с аппаратурой через всякие "интеллектуальные" штуки, которые могут достаточно неадекватно вести себя для Вашей задачи. (Не зная сути задачи трудно судить)

Может подскажите хоть одного производителя кто выпускает DSP+FPGA в одном корпусе?
Насколько я знаю и у xilinx и у altera пока только анонсированы A9+FPGA. Про DSP+FPGA вообще первый раз слышу.
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 17 2011, 04:16
Сообщение #10


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(Аматер @ Oct 16 2011, 23:37) *
Может подскажите хоть одного производителя кто выпускает DSP+FPGA в одном корпусе?
Насколько я знаю и у xilinx и у altera пока только анонсированы A9+FPGA. Про DSP+FPGA вообще первый раз слышу.


Точно где то встречал. Еще спрошу у человека. А вообще есть вот такой вариант например. ARM конечно ограничен в dsp инструкциях, но все же. На счет конкретно DSP + FPGA еще узнаю :-)


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 17 2011, 07:34
Сообщение #11


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

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Цитата(gormih @ Oct 17 2011, 07:16) *
Точно где то встречал. Еще спрошу у человека. А вообще есть вот такой вариант например. ARM конечно ограничен в dsp инструкциях, но все же. На счет конкретно DSP + FPGA еще узнаю :-)


Так о чем я и говорил с самого начала, про альтеру на которую вы ссылку даете. А DSP+FPGA не делают, потому что DSP решается в встроенными в FPGA умножителями. У меня немного другая задача - нужно по входным данным найти кое что и расчитатать, то есть на фильтр вообще не похоже. Поэтому cortex A9 иделальный вариант. Вот только почему то их программируют с операционками.

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

Пока кажется что проще адаптировать скажем eCos чем настроить Linux.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Oct 19 2011, 07:08
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Аматер @ Oct 17 2011, 11:34) *
Пока кажется что проще адаптировать скажем eCos чем настроить Linux.


Чем проще ? SMP в Linux отключается в конфиге одной галочкой, а вот как общие ресурсы делить между ядрами это уже другой вопрос, для этого различные гипервизоры пишут, кстати у cortex-a есть аппаратное расширение TrustZone, мне кажется надо смотреть в эту сторону, на сайте ARM есть где-то пример настройки двух standalone задач, правда помоему для одного ядра пример.
Go to the top of the page
 
+Quote Post
AVR
сообщение Nov 28 2011, 15:18
Сообщение #13


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(sasamy @ Oct 19 2011, 11:08) *
Чем проще ? SMP в Linux отключается в конфиге одной галочкой, а вот как общие ресурсы делить между ядрами это уже другой вопрос, для этого различные гипервизоры пишут, кстати у cortex-a есть аппаратное расширение TrustZone, мне кажется надо смотреть в эту сторону, на сайте ARM есть где-то пример настройки двух standalone задач, правда помоему для одного ядра пример.

+1, заставить Linux работать не только без SMP, но и вообще выделить какое либо ядро (или несколько) чтобы оно было свободно - делается в конфигах и даже в параметре к ядру
а то сижу читаю местных экспертов про "ужасные сложности" и диву даюсь biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th June 2024 - 09:28
Рейтинг@Mail.ru


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