Перейти к содержанию
    

Требуется программист на ассемблере для DSP (Санкт-Петербург, LG Russia Lab)

 В Санкт-Петербургскую лабораторию LG Russia R&D Lab срочно требуется специалист по портированию алгоритмических решений в области обработки звука на специализированный аудио-DSP.

Железо:
- Семейство процессоров Qaulcomm QCC5100 + Kalimba DSP

Задача:
- Портирование алгоритмов обработки голосового сигнала. Задача максимум – программирование на встроенном Ассемблере. Приемлемо – написание, компиляция и оптимизация fixed-point C.

У нас есть:
- Код на float-C (обусловлено внутренними стандартами разработки), по запросу можем предоставить описание и блок-схемы алгоритмов
- Отладочная плата
- Стартовый проект + ПО для разработки от Qualcomm

Требования к кандидату: опыт разработки для DSP (fixed-point C, приветствуется Ассемблер)

Условия работы:
- Контракт на 2 месяца с возможностью продления (по ситуации)
- Возможна удаленная работа
- Достойная оплата
- Возможна совместная разработка (часть работы мы готовы взять на себя вследствие большого объема)
- Формально контракт с одним физ. лицом (что не исключает фактического участия нескольких разработчиков)
 
Контакты:
Тел: +7-911-933-76-90 (WhatsApp)
Почта: [email protected]
Роман

Изменено пользователем makc
запрос автора темы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно задача то не столько в портировании, а в оптимизации кода?

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

Что не устраивает в существующем коде на Си?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, C2000 said:

Возможно задача то не столько в портировании, а в оптимизации кода?

Скорее, в переводе floating point в fixed.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 hours ago, C2000 said:

Возможно задача то не столько в портировании, а в оптимизации кода?

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

Что не устраивает в существующем коде на Си?

Заказчик (головной офис в Корее) хочет именно код на ассемблере, т.к. с его точки зрения производительность выше. В любом случае, требуется грамотная оптимизация и перевод на Fixed-point.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

07.06.2021 в 11:03, Roman Salimov сказал:

Портирование на встроенный ассемблер алгоритмов обработки голосового сигнала

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Roman Salimov said:

Заказчик (головной офис в Корее) хочет именно код на ассемблере, т.к. с его точки зрения производительность выше. В любом случае, требуется грамотная оптимизация и перевод на Fixed-point.

Ну перевод на Fixed point (на Си) это одно дело, можно было бы заняться при хороших условиях. Если речь именно об обработке сигналов, а не о сетевых протоколах.

Но где Вы найдете специалиста на ассемблере под этот проц. это большой вопрос. Возможно стоит переубедить заказчика?

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

По моему мнению не стоит связываться с ассемблером, овчинка выделки не стоит. Возможно местами имеют смысл вставки на ASM но не более.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, C2000 said:

При хорошем коде на Си без лишнего оверхеда + оптимизация самого компилятора может даже лучше чем на ASM-е получиться

FP C на целочисленном процессоре лучше никак не получится. А перевод - очень своеобразное занятие: трудозатраты могут в разы отличаться в зависимости от степени подготовки исходной реализации к целочисленным вычислениям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, aaarrr said:

FP C на целочисленном процессоре лучше никак не получится. А перевод - очень своеобразное занятие: трудозатраты могут в разы отличаться в зависимости от степени подготовки исходной реализации к целочисленным вычислениям.

Естественно имеется ввиду перевод кода на Fixed point, но на Си а не на ASM

Есть ли весь набор необходимых автоматических тестов под уже имеющеюся реализацию на FP.

Если нет то не очень понятно как контролировать переход на Fixed, это уже получиться не переход а разработка заново, с имеющимся (возможно работающим) примером на FP.

Если же есть тесты, то всё будет более прозрачно и понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, C2000 сказал:

Но где Вы найдете специалиста на ассемблере под этот проц. это большой вопрос. Возможно стоит переубедить заказчика?

Если описание ассемблера есть, то никто не мешает этому специалисту появиться. Достаточно взять самообучающегося человечка. Не боги горшки обжигают....

24 минуты назад, C2000 сказал:

При хорошем коде на Си без лишнего оверхеда + оптимизация самого компилятора может даже лучше чем на ASM-е получиться + переносимость будет

Может лучше, а может и - наоборот. Бабка надвое сказала.

24 минуты назад, C2000 сказал:

По моему мнению не стоит связываться с ассемблером, овчинка выделки не стоит.

Странно так безапелляционно заявлять не зная целевого ассемблера и средств разработки....  :russian_ru:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, jcxz said:

Если описание ассемблера есть, то никто не мешает этому специалисту появиться. Достаточно взять самообучающегося человечка. Не боги горшки обжигают....

Ну если за время которое нужно потратить на обучение (тому что потом не факт что когда то пригодится) готовы платить, то почему бы и не пообучаться.

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

6 minutes ago, jcxz said:

Странно так безапелляционно заявлять не зная целевого ассемблера и средств разработки....  :russian_ru:

И компилятора под это ядро и SDK которое предоставляет производитель, в котором возможно уже есть основные мат.функции на высоко оптимизированном ассемблере.

Согласен разные бывают платформы, да еще и с сопроцессорами которые фурье в одну команду раскладывают, но как правило полностью переходить на ASM нет смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В январе в качестве исходников предлагали Fixed-C:

Странно это как то выглядит, сначала перевели с Fixed во Float, а теперь обратно в Fixed да еще и в ASM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/8/2021 at 3:48 PM, C2000 said:

В январе в качестве исходников предлагали Fixed-C:

Странно это как то выглядит, сначала перевели с Fixed во Float, а теперь обратно в Fixed да еще и в ASM

С Января задача значительно усложнилась, от нас запросили разработку новых алгоритмов. Вместо перевода имеющихся на fixed мы продолжили разработывать на Float и наняли человека для превода сразу на целевой ассемблер (со слов исполнителя, у него был опыт реализации под нашу конкретную платформу). Но сотрудничество не задалось. В итоге у нас сейчас все на Float.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Roman Salimov сказал:

С Января задача значительно усложнилась, от нас запросили разработку новых алгоритмов. Вместо перевода имеющихся на fixed мы продолжили разработывать на Float и наняли человека для превода сразу на целевой ассемблер

Какой-то странный порядок работы.... :wacko2:  Вместо того чтобы сразу делать как нужно: сперва сделать как не нужно, а потом переделывать.

Почему сразу не разрабатывать на fixed? Перевод запросто увеличивает объём работы в 2-е. А очень часто - вообще требует полной переделки всего аолгоритма работы с 0.

Складывается ощущение, что имеющаяся банда разработчиков "разрабатывающих на Float", не умеет работать с fixed. И не желает учиться этому. А хотят как попроще, чтоб не напрягаться. И решили найти "рыжего", который разберётся в том, что они там накодили, всё переделает, отладит, а "печеньки" от результата потом поделят на всех. А если "рыжий" не справится, то на него можно всё свалить, как на стрелочника. А float-банда так и будет плевать в потолок....

 

PS: К тому же задача стоит не только в переводе на fixed, но ещё и в адаптации/оптимизации на целевой DSP. Это в сумме запросто может по сложности кратно перекрыть разработку на float (не оптимизированную под DSP-выполнение).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, jcxz said:

Почему сразу не разрабатывать на fixed? Перевод запросто увеличивает объём работы в 2-е. А очень часто - вообще требует полной переделки всего аолгоритма работы с 0.

Складывается ощущение, что имеющаяся банда разработчиков "разрабатывающих на Float", не умеет работать с fixed. И не желает учиться этому.

Обычно алгоритмы разрабатывают научные сотрудники, у которых кроме научных знаний и инструмента в виде Matlab больше ничего нет.

Опускаться до прикладного мира им неинтересно - у них интегралы в голове. Математику fixed они не потянут, а Matlab даже float\double не умеет.

 

Так что получается обычно 3 этапа разработки:

1 модель учёного в Matlab с точностью его вычислений;

2 перевод матлабщиком в fixed на матлабе или в fixed\float\double сишником или транслятором;

3 перевод под конкретный камень, компилятор синтезатор с отладкой и оптимизацией.

 

Похоже здесь третий этап.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/11/2021 at 4:07 PM, _4afc_ said:

Обычно алгоритмы разрабатывают научные сотрудники, у которых кроме научных знаний и инструмента в виде Matlab больше ничего нет.

Опускаться до прикладного мира им неинтересно - у них интегралы в голове. Математику fixed они не потянут, а Matlab даже float\double не умеет.

 

Так что получается обычно 3 этапа разработки:

1 модель учёного в Matlab с точностью его вычислений;

2 перевод матлабщиком в fixed на матлабе или в fixed\float\double сишником или транслятором;

3 перевод под конкретный камень, компилятор синтезатор с отладкой и оптимизацией.

 

Похоже здесь третий этап.

У нас отдел исследовательский отдел, в приоритете - перспективные разработки. Float-C принят в качества снадрарта. В этом году была поствалена задача портирования под конретное слабое железо без floating-point сопроцессора.

Содержание вакансии былы изменено с учетом собственных изысканий и отзывов специалистов.

Использовние встроенного ассемблера по прежнему является приоритетной задачей. Но, в связи со сложностью и сжатыми сроками, рассматривается вариант написания, оптимизации и компиляции Fixed-Point Си кода (возможен "гибридный" Ассемблер/Си вариант).

Изменено пользователем Roman Salimov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...