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

 
 
> 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
 
Start new topic
Ответов
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



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 00:37
Рейтинг@Mail.ru


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