Roman Salimov 0 7 июня, 2021 Опубликовано 7 июня, 2021 (изменено) · Жалоба В Санкт-Петербургскую лабораторию 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] Роман Изменено 15 июня, 2021 пользователем makc запрос автора темы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 7 июня, 2021 Опубликовано 7 июня, 2021 · Жалоба Возможно задача то не столько в портировании, а в оптимизации кода? Перевести на ассемблер можно добавив флажок компилятора, указывающий, что нужно генерировать ассемблерный код, и после компиляции у Вас будет код на ассемблере. Что не устраивает в существующем коде на Си? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 68 7 июня, 2021 Опубликовано 7 июня, 2021 · Жалоба 21 minutes ago, C2000 said: Возможно задача то не столько в портировании, а в оптимизации кода? Скорее, в переводе floating point в fixed. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Roman Salimov 0 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 21 hours ago, C2000 said: Возможно задача то не столько в портировании, а в оптимизации кода? Перевести на ассемблер можно добавив флажок компилятора, указывающий, что нужно генерировать ассемблерный код, и после компиляции у Вас будет код на ассемблере. Что не устраивает в существующем коде на Си? Заказчик (головной офис в Корее) хочет именно код на ассемблере, т.к. с его точки зрения производительность выше. В любом случае, требуется грамотная оптимизация и перевод на Fixed-point. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzx 0 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 07.06.2021 в 11:03, Roman Salimov сказал: Портирование на встроенный ассемблер алгоритмов обработки голосового сигнала Возможно, что вопрос не аудиокодеке и floating частности, а более комплексный, например, в стеке BT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 3 hours ago, Roman Salimov said: Заказчик (головной офис в Корее) хочет именно код на ассемблере, т.к. с его точки зрения производительность выше. В любом случае, требуется грамотная оптимизация и перевод на Fixed-point. Ну перевод на Fixed point (на Си) это одно дело, можно было бы заняться при хороших условиях. Если речь именно об обработке сигналов, а не о сетевых протоколах. Но где Вы найдете специалиста на ассемблере под этот проц. это большой вопрос. Возможно стоит переубедить заказчика? При хорошем коде на Си без лишнего оверхеда + оптимизация самого компилятора может даже лучше чем на ASM-е получиться + переносимость будет, не будет код гвоздями прибит к командам конкретного ядра. По моему мнению не стоит связываться с ассемблером, овчинка выделки не стоит. Возможно местами имеют смысл вставки на ASM но не более. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 68 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 6 minutes ago, C2000 said: При хорошем коде на Си без лишнего оверхеда + оптимизация самого компилятора может даже лучше чем на ASM-е получиться FP C на целочисленном процессоре лучше никак не получится. А перевод - очень своеобразное занятие: трудозатраты могут в разы отличаться в зависимости от степени подготовки исходной реализации к целочисленным вычислениям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 4 minutes ago, aaarrr said: FP C на целочисленном процессоре лучше никак не получится. А перевод - очень своеобразное занятие: трудозатраты могут в разы отличаться в зависимости от степени подготовки исходной реализации к целочисленным вычислениям. Естественно имеется ввиду перевод кода на Fixed point, но на Си а не на ASM Есть ли весь набор необходимых автоматических тестов под уже имеющеюся реализацию на FP. Если нет то не очень понятно как контролировать переход на Fixed, это уже получиться не переход а разработка заново, с имеющимся (возможно работающим) примером на FP. Если же есть тесты, то всё будет более прозрачно и понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 24 минуты назад, C2000 сказал: Но где Вы найдете специалиста на ассемблере под этот проц. это большой вопрос. Возможно стоит переубедить заказчика? Если описание ассемблера есть, то никто не мешает этому специалисту появиться. Достаточно взять самообучающегося человечка. Не боги горшки обжигают.... 24 минуты назад, C2000 сказал: При хорошем коде на Си без лишнего оверхеда + оптимизация самого компилятора может даже лучше чем на ASM-е получиться + переносимость будет Может лучше, а может и - наоборот. Бабка надвое сказала. 24 минуты назад, C2000 сказал: По моему мнению не стоит связываться с ассемблером, овчинка выделки не стоит. Странно так безапелляционно заявлять не зная целевого ассемблера и средств разработки.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба 5 minutes ago, jcxz said: Если описание ассемблера есть, то никто не мешает этому специалисту появиться. Достаточно взять самообучающегося человечка. Не боги горшки обжигают.... Ну если за время которое нужно потратить на обучение (тому что потом не факт что когда то пригодится) готовы платить, то почему бы и не пообучаться. Но думаю хотят найти того кто будет делать, а не учиться, хотя тут нужен комментарий от автора топика, чтобы не гадать. 6 minutes ago, jcxz said: Странно так безапелляционно заявлять не зная целевого ассемблера и средств разработки.... И компилятора под это ядро и SDK которое предоставляет производитель, в котором возможно уже есть основные мат.функции на высоко оптимизированном ассемблере. Согласен разные бывают платформы, да еще и с сопроцессорами которые фурье в одну команду раскладывают, но как правило полностью переходить на ASM нет смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 8 июня, 2021 Опубликовано 8 июня, 2021 · Жалоба В январе в качестве исходников предлагали Fixed-C: Странно это как то выглядит, сначала перевели с Fixed во Float, а теперь обратно в Fixed да еще и в ASM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Roman Salimov 0 11 июня, 2021 Опубликовано 11 июня, 2021 · Жалоба On 6/8/2021 at 3:48 PM, C2000 said: В январе в качестве исходников предлагали Fixed-C: Странно это как то выглядит, сначала перевели с Fixed во Float, а теперь обратно в Fixed да еще и в ASM С Января задача значительно усложнилась, от нас запросили разработку новых алгоритмов. Вместо перевода имеющихся на fixed мы продолжили разработывать на Float и наняли человека для превода сразу на целевой ассемблер (со слов исполнителя, у него был опыт реализации под нашу конкретную платформу). Но сотрудничество не задалось. В итоге у нас сейчас все на Float. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 11 июня, 2021 Опубликовано 11 июня, 2021 · Жалоба 2 часа назад, Roman Salimov сказал: С Января задача значительно усложнилась, от нас запросили разработку новых алгоритмов. Вместо перевода имеющихся на fixed мы продолжили разработывать на Float и наняли человека для превода сразу на целевой ассемблер Какой-то странный порядок работы.... Вместо того чтобы сразу делать как нужно: сперва сделать как не нужно, а потом переделывать. Почему сразу не разрабатывать на fixed? Перевод запросто увеличивает объём работы в 2-е. А очень часто - вообще требует полной переделки всего аолгоритма работы с 0. Складывается ощущение, что имеющаяся банда разработчиков "разрабатывающих на Float", не умеет работать с fixed. И не желает учиться этому. А хотят как попроще, чтоб не напрягаться. И решили найти "рыжего", который разберётся в том, что они там накодили, всё переделает, отладит, а "печеньки" от результата потом поделят на всех. А если "рыжий" не справится, то на него можно всё свалить, как на стрелочника. А float-банда так и будет плевать в потолок.... PS: К тому же задача стоит не только в переводе на fixed, но ещё и в адаптации/оптимизации на целевой DSP. Это в сумме запросто может по сложности кратно перекрыть разработку на float (не оптимизированную под DSP-выполнение). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 11 июня, 2021 Опубликовано 11 июня, 2021 · Жалоба 1 hour ago, jcxz said: Почему сразу не разрабатывать на fixed? Перевод запросто увеличивает объём работы в 2-е. А очень часто - вообще требует полной переделки всего аолгоритма работы с 0. Складывается ощущение, что имеющаяся банда разработчиков "разрабатывающих на Float", не умеет работать с fixed. И не желает учиться этому. Обычно алгоритмы разрабатывают научные сотрудники, у которых кроме научных знаний и инструмента в виде Matlab больше ничего нет. Опускаться до прикладного мира им неинтересно - у них интегралы в голове. Математику fixed они не потянут, а Matlab даже float\double не умеет. Так что получается обычно 3 этапа разработки: 1 модель учёного в Matlab с точностью его вычислений; 2 перевод матлабщиком в fixed на матлабе или в fixed\float\double сишником или транслятором; 3 перевод под конкретный камень, компилятор синтезатор с отладкой и оптимизацией. Похоже здесь третий этап. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Roman Salimov 0 15 июня, 2021 Опубликовано 15 июня, 2021 (изменено) · Жалоба 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 Си кода (возможен "гибридный" Ассемблер/Си вариант). Изменено 15 июня, 2021 пользователем Roman Salimov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться