Jump to content

    

iiv

Свой
  • Content Count

    2084
  • Joined

  • Last visited

Community Reputation

0 Обычный

2 Followers

About iiv

  • Rank
    любопытный

Recent Profile Visitors

10974 profile views
  1. Ага, верно, спасибо большое за комментарии!
  2. Спасибо, я правда как раз совершенно не это хотел :( мне хочется более-менее разумный пример самого преобразователя из миди сигнала в аудио. То есть у меня есть кейброда, из которой идет миди, а ее далее преобразовывают в аудио сигнал. То есть я конечно понимаю в общем как это сделать, понимаю, что нужны банки звучания инструментов, и еще миного чего, но хотелось бы посмотреть как это реализуется минималистически, например, для фортепиано, и подкинуть эту идею своим детям.
  3. Спасибо! Правда с пиками, боюсь, поленюсь связываться, ибо сам не пользовал никогда. У меня мои дети на фортепиано играют, вернее на кейборде (Фатар грант-тач), но через компьютерный сексенсер. Я недавно им подбросил идею совместно сделать железку и написать программу, чтобы поток с MIDI превращать в выход на динамики. На компе писать это очень не реально, так как надо залезать в реал-тайм ядро, и они точно не потянут, а вот на МК, ИМХО, все более-менее обозримо, тем более, что из периферии один компорт на вход и один ЦАП на выход. Писать с нуля все - и самому лениво, и они пока еще не потянут (11 и 13 лет), а если взять что-то опенсорсное и попробовать улучшать - да, должно получаться. В их возрасте они долгоиграющие проекты потянуть не смогут.
  4. Полуофф (шепотом) а преобразовывать MIDI поток в звуковой сигнал на МК можно? И, если да, есть ли какой-то простой вариант прошивки для какого-нибудь арма (на ардуинах, думаю, не потянет) в открытом доступе?
  5. не, ну 1812 с прорезью в плате можно, а без - недавно сам учавствовал в споре со знакомым, он таки проспорил, утверждая, что можно, хотя мы и метоксипропанолом в ультразвуке с подогревом мыли и дважды вакуумом тянули - все равно без толку, под пузом этого сопротивления пару гигаом таки набежало.
  6. для выполнения сортировки массива 100М, вам надобно 1.4Г сравнения, или, если в лоб, 28* 400*2=22.4ГБ передачи данных по памяти. Если считать, что за 4.75 Ваш процессор выполнит 19 Г сравнений, или начитает/напишет 50ГБайт из памяти, очевидно, что Вы сортировали упираясь на доступ в память, DDR3-1333 имеет скорость около 11ГБайт/с, чуток задействовав кеш на первых коротких сортировках. То есть при должном старании вы должны получить эту сортировку за 1.2 секунд (5ГБайт передач по 11ГБ/с впараллель с 19Г операций по 16Г в секунду, 8 сравнений за такт i7, если мне не изменяет память) и только тогда оно сядет на скорости процессора, и это вместо ваших 4.75 секунд. Теперь надо еще вспомнить, что есть кеш инструкций (L1 тоже 16кбайт, про остальные кеши не стоит думать), есть еще плохая конвейеризация инструкций (сброс предсказателя загрузки очередной команды) при выполнении условных переходов и с этими факторами тоже надо бороться - они могут полностью перечеркнуть все ваши старания.
  7. У вас алгоритм N log N операций сравнения и столько же операций по чтению и записи по памяти. Следовательно, помня, что память в десятки раз медленнее про сравнения пока забьем. вот тут вы путаете операцию prefetch с доступом в кеш. Если бы у вас было бы куча вычислительной работы на одно чтение из памяти, да, этот prefetch очень бы помогал, но у вас он как мертвому припарка. Теперь давайте рассмотрим массив 1024 чисел 4 байтовых целых для сортировки, тогда вам надобно еще столько же памяти для временного буфера и тогда все это хозяйство влезает в 8кбайт, что меньше размера первого кеша. Пока у вас массив такой маленький, за первый проход вы его медленно зачитаете из памяти в кеш за N операций, а потом оставшиеся 9N операций (log 1024 - 1)*N будете обращаться только в кеш, то есть реально потратите времени как если бы 2N раз читали из памяти. Если вы попарно, по 4, по 8 начнете гулять по всему огромному массиву, который не влез в кеш, то вы вместо этих 2N потратите 10N. То есть при длине в 1М ваш алгоритм должен потратить времени, примерно равному чтению 20M ячеек памяти, а полностью рекурентный - только 12M. Если хочется оптимизировать дальше, то можно обойтись всего-то 4M, что по сравнению с 20M даст выигрыш в 5 раз. Вроде не много, но тоже что-то. Вот если бы большие матрицы друг на друга умножали бы, там можно было бы получить выигрыш и в 100 раз. Я еще 20 лет назад своим студентам лекции по вычислительной математике начинал с примера умножения матриц, просил их написать, а демонстрировал хорошо оптимизированный по кешу и конвейеру алгоритм, который обыгрывал их реализацию в 10-100 раз (раньше отношение пиковой производительности к доступу к памяти было не такое большое), после этого студентам было интересно ходить ко мне на лекции. Почитайте книжку, что вам посоветовали, или просто погуглите про процессорные кеши и кеш оптимизацию математических алгоритмов - узнаете много нового. В настоящий момент программную реализацию (после вывода теоретических формул) начинают не с программирования, а с планирования как распределить память под задачу на той архитектуре, на которой планируется считаться. Понятно, AVR и аналогичных процессоров с детерминистическим доступам это не касается :)
  8. На пальцах, пока у вас сортировка идет с блоком размера 16кбайт (если мы про интелы) то надо считать число операций, а как только вы вылезли из этих пределов и пока еще линейно адресируетесь по памяти, число чтений и записи в эту память. Операции идут грубо говоря на тактовой процессора (вы всяко быстро не научитесь конвейеризовать инструкции) а обращение к памяти на ее тактовой, которая в 10 раз меньше. Ну а как полезете дальше в детали, то узнаете что кешей есть много и есть страничная организация памяти и есть векторно конвейерный параллелизм исполнения инструкций. При старании сортировка может быть ускорена раз в 5 с учетом всего этого, но алгоритмы сортировки маленьких и больших массивов сильно отличаются
  9. если гоняете на процессорах с кешем, то лучше рекуррентно переключая вспомогательный массив, тогда пока у вас размер сливаемых данных лезет в кеш, все будет считаться быстро, а потом уже так и так ноль шансов, или сливать по много потоков - но это уже формально - другой вид сортировки. В остальном - все верно.
  10. я довольно понятно выразился, что хоть мне и тема любопытна и ТС я посоветовал как минимум несколько компонент и решений, сам я участвовать не только не планировал из-за соображений нарушений чужих патентов, но и не разделяю позицию бездумно повторять чужое, даже если эта позиция законна на территории РФ с точки зрения патентного права. Странно, что a123-flex почему-то меня обвиняет во всех смертных грехах, что де я якобы навязываюсь к ТС в подрядчики. Мне реально моей задачи с ЯМРом хватает, а участие в обсуждении задачи ТС мне интересно, так как у меня сигналы примерно того же порядка, правда меняются на бОльших частотах. Надеюсь, что a123-flex перестанет тут флеймить не по теме.
  11. a123-flex так вас же вот так даже чучелом в нечер-то не вписывают, если б только алгоритм - и я бы был просто по найму - меня в соавторах там не было бы. Хаить не себя - всегда легко, не так ли? Оправдываться мне тут нечего - я с десяток лет сидел с полным доступом к не мной разработанным спектрометрам - то есть имел возможность обрабатывать и работать с сигналами ЯМР, а вот свою железку начал делать относительно недавно. Именно имея такой опыт за плечами - предостерегал ТС этого топика от возможных заморочек.
  12. так именно из-за активных участников форума электроникс я многое для своей технологии смог, и, кстати, да, на удивление то, что по ссылке обсуждалось заработало, но заметьте - решение как и что делать принимал я сам, а не искал мальчика, кто бы мне эту плату по дешевке развел, спаял, отладил, и софтвер написал, и корпус собрал, и анализы провел. Считаю не грех учиться даже имея два диплома и кандидатский диссер за плечами, и премного благодарен тем, кто мне дельно тут советовал и не устану это повторять. И кстати да, в 2011 я пришел на форум не сильно разбираясь как читать даташиты, а сейчас многое могу сделать и многое уже получается, за что я всем помогавшим премного благодарен. a123-flex а у вас в чем проблема, что вы так рьяно на мои топики отзываетесь, придумайте и разработайте технологию хотя бы такого же уровня как и у меня, и профинансируйте это из своего кармана, тогда и на других гавкать от зависти не придется. думаю, что суммарный индекс цитирования больше 700 на мои научные стати в области ЯМР говорят о том, что ЯМР данные я обрабатывать умею, и многие это уже признали. А железку - да, до сих пор учусь делать, есть такое.
  13. вы не говорите, что разработчиков нет, а сами подумайте, что вы сделать хотите. Вот у вас есть ячейка 10х10мм примерно, от нее надо 126 проводков и 126 усилителей, причем это все в хорошем экране, так как проводок 1см длиной без экрана спокойно нахватывает сотню микровольт шума из нашей современной действительности. Вы подумали как это разместить, и что планарно это 5кв дм платы? Из расчета что один блок примерно 4кв см и сделан на 7721 с одной LDOшкой на питании и одним внешним блоком питания. Если это делать планарно, то у вас после этого все 126 выходов (которые все еще в микровольтном диапазоне) лезут на так вами пиарнутый чип один на все каналы. Можно найти кого-то, кто без ответственности это разведет, но не идиот просто браться не будет, чтоб себе репутацию не портить. Понятно можно городить стойки из усилителей, каждые на своей плате, делать 3Д дизайн, и, (прикидочно и вспоминая мой опыт разводки похожего добра) можно вписаться в кубик примерно 8х8х8 см весь полностью забитый платами и экранами, и в центре одной грани там будет ваша штопанная ячейка, а на противоположной грани - контакты с выхода оцифровщиков. Если бы в РФ повсеместно похожие задачи решались, я думаю, вы бы смогли найти человека или команду, кто вам это разработает, но, на сколько я понимаю, те же 7721 под санкциями, а то, что есть свое, будет чуток побольше, и кубик с 8х8х8см на 20х20х20см надо будет увеличить, предварительно подумав о том, что он и греться будет и водяное охлаждение потребуется, и температурная стабилизация на элементах Петелье, поэтому габариты будут такими недеццкими, сложность - супер недеццкая, и пока вы не достанете из кармана пару лямов зелени и не предъявите их здесь на форуме, вас тут как заказчика никто серьезно воспринимать не будет. То есть как я вам уже однажды написал, или пройти самому, постоянно советуясь здесь, либо искать инвестора, больше выбора нет. Причем также надо очень хорошо подумать, что сигнал у вас довольно не обычный, и надо иметь достаточно мозгов и опыта в обработке такого сигнала - этот факт говорю на основе моего многолетнего опыта работы с сигналами в ЯМР, когда ловишь сигнал на пару порядков ниже шума. То есть в обработке сигнала тоже потребуются мозги, и обычный программист на сишарпе или пехапе будет годами биться об стенку и не сможет решить эту задачу ни зависимо от того сколько вы ему за это будете платить. Причем на сколько мне известно, на этом форуме есть достаточно специалистов в своих областях, которых, если объединить и правильно мотивировать, они совместно смогут решить вашу задачу. Альтернативно, если вы сами ее решать будете, и, в какой-то момент времени в чем-то запутаетесь, вам посоветуют в каком направлении двигаться или литературу посоветуют - то есть не будут решать за вас задачу, но наставят на путь истинный. Без обид, надеюсь смог донести до вас вашу основную проблему. PS: чтоб не возникли гнусные инсинуации - я сам не планирую участвовать, так как нахожусь в той стране, в которой действуют патенты на эту технологию, поэтому заниматься повторением того, что запатентовано для себя считаю неприемлемым.
  14. При тех номиналах, что на схеме этот резистор должен рассеивать 28Ватт, паяльничек такой хороший, наверное его надо побольше размера взять, или пользовать как обогреватель.
  15. правильно, 4-тая мали не потянет, а на нормальной 6-ке я еще в 2014 около 100 гигафлопс на одинарной точности получал и выше об этом писал, это примерно в 20 раз больше необходимых 5 гигавыборок на монитор. Да, понятно, что все-таки надо уметь на ОпенЦЛе работать и понимать устройство многоуровневой памяти, и доступ по памяти конечно 100 гфлопс не показывает, а в разы меньше. Кстати, по первости, когда я первый раз взял в руки шашки начал программировать на графических картах, нормальным явлением была производительность 10е-6 от пиковой, но почитав доки и вспомнив устройство векторно-конвейерных процессоров, на которых до этого работал, все сразу поехало. Сейчас доки в нете - море, бери, читай, сравнивай, а, самое главное, сразу пробуй.