Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Intel Edison: где достать datasheet на кварк и где достать примеры пользования SPI и передачи данных на основной процессор?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
iiv
Добырй день,

обзавелся Intel Edison, впечатлило, что получил на такой маленькой балалайке 800МФлоп/с на двойной и 3.6ГФлоп/с на одинарной точности.

Сейчас хочу по SPI скоммуницироваться с MCP3913 и читать на 20МГц с него данные, естественно через level-shifter.

Нашел кучу примеров как пользовать SPI из mraa, но там похоже 20МГц будет урывками ходить, как написано в http://www.i-programmer.info/programming/h...pi.html?start=2 или о синхронизации от АЦПшник надо будет просто забыть. Поэтому хочу читать на самом процессоре кварке, чтобы чтение проводить в тот момент, когда пришли данные (там есть ножка у АЦПшки, когда данные готовы.

Проблема в том, что не нашел нигде внятного описания устройства этого гребанного кварка, а также не нашел функций пользования SPI из него и как мне 2.5МБ/с переслать на основной процессор. Как я понимаю, mraa обращается в SPI напрямую, минуя кварк.

Вдруг кто знает, тыкните, пожалуйста, где это можно найти!

PS: Понимаю и склоняюсь поставить промежуточный буфер-процессор, чтобы на нем все сделать как надо, но ведь для чего-то там этот кварк стоит, и у него даже 100МГц тактовая, то есть он не такой и слабый!

Спасибо!!!

ИИВ
Obam
ARM?
AVR
Цитата(Obam @ Oct 31 2016, 12:04) *
ARM?
Intel Edison ни разу не ARM...
mantech
Цитата(AVR @ Oct 31 2016, 15:01) *
Intel Edison ни разу не ARM...

Atom всегда был x86, да и кварк походу то же. Почитал про платку эту, прослезился по ее цене, чем она так привлекательна - непонятно..
Если рассматривать, как линукс контроллер - их полно сейчас на армах, если стандалон - нет доков laughing.gif , да и в этом случае армы лучше, т.к. нормальный граф. порт есть. Причем еще этот непаябельный разъем, как в старых сотовых модемах sad.gif
iiv
Цитата(mantech @ Oct 31 2016, 23:36) *
Почитал про платку эту, прослезился по ее цене, чем она так привлекательна - непонятно..

я выбирал по принципу, чтобы на ней можно было хоть что-то посчитать (серьезно больше 50МФлоп/с на двойной точности), с разумным количеством достаточно быстрой памяти (1ГБ памяти, скорость доступа 3ГБ/с), и чтобы была очень маленькая. Мне надо еще меньше, 22мм, но 25мм теоретически может подойти, если поменять корпус моего аппарата.

Альтернативы другой не нашел. Паять 5-ый эксинос не осилю, да и доки не дадут, а imx6 совсем тормознутый. М7 с внешней памятью - тоже совсем не сахар, если дергаешь периферию, то о его 30МФлопах на двойной забыть можно... Поэтому на на этом эдисоне и тренируюсь.

Кстати, если сравнивать M7+память хотя бы 64МБ, эдисон будет значительно дешевле...

ЗЫ: я к интелу ни какого отношения не имею, более того, топик открыл чтобы разобраться в интеловских косяках.
mantech
Цитата(iiv @ Oct 31 2016, 21:58) *
Кстати, если сравнивать M7+память хотя бы 64МБ, эдисон будет значительно дешевле...


Можно техасы посмотреть, у них математика неплохая должна быть. Если не секрет, зачем нужна двойная плавучка на таких скоростях?
iiv
Цитата(mantech @ Nov 1 2016, 01:48) *
Можно техасы посмотреть, у них математика неплохая должна быть. Если не секрет, зачем нужна двойная плавучка на таких скоростях?

мне не нужен техас, или еще какой аналогичный процессор, я на ARM форуме недавно всем мозги выносил что-то путевое найти, но похоже не реально. На других процессорах гигафлоп очень сложно получить, а потом я замаюсь разводить это все с памятью, искать дрова, ставить туда линукс... и будет оно мне стоить дороже эдисона, но только с кучей гемора и не факт, что впишусь в аналогичные габариты, а плат размера 22мм, или как у эдисона 25мм нет ни с техасом, ни с другими разумными процессорами.

Плавучка мне всегда нужна была, хотя бы ранг-ревеалинг QR, который от входных данных с 12 битами уже хочет под 40-50 бит мантиссу.
_3m
Цитата(iiv @ Oct 29 2016, 23:10) *
Проблема в том, что не нашел нигде внятного описания устройства этого гребанного кварка

Intel® Quark™ microcontroller D2000 Datasheet сгодится ?
AlexandrY
Цитата(iiv @ Oct 31 2016, 23:53) *
Плавучка мне всегда нужна была, хотя бы ранг-ревеалинг QR, который от входных данных с 12 битами уже хочет под 40-50 бит мантиссу.


Насколько можно понять RRQR применяется в довольно устаревшем методе апроксимации наименьшими квадратами.

Тут в последнем номере IoT design guide реклимируют модули NVIDIA для глубокого обучения - http://embedded-computing.com/products/id/?373802
Может пора уже поменять вам свою "считалку"? biggrin.gif
iiv
Цитата(AlexandrY @ Nov 1 2016, 15:06) *
Тут в последнем номере IoT design guide реклимируют модули NVIDIA для глубокого обучения - http://embedded-computing.com/products/id/?373802

не, в этих габаритах есть просто уйма всего, это же 50мм!!! Да и дохлая она, при цене в 800 бакс ее как тузик грелку Intel Joule делает, который и в 2 раза дешевле, и всего-то 24мм по габаритам да и программировать на тегре совсем не сахар...

А мне надо очень маленькие габариты, идеально 22мм, но, как я говорил, при изменении корпуса могу вписаться в 25мм, может быть до 28мм, но изменение корпуса стоит денег, понятно это хочется избежать, но, похоже не реально.

Intel Joule мне все-таки дороговат, надеюсь, по производительности в Эдисон вписаться, но если не получится, придется Джоуль ставить.

Цитата(AlexandrY @ Nov 1 2016, 15:06) *
Насколько можно понять RRQR применяется в довольно устаревшем методе апроксимации наименьшими квадратами.
...
Может пора уже поменять вам свою "считалку"? biggrin.gif

вот здесь бы желательно по-подробнее, со ссылками, что есть "нового" вместо RRQR для решения задачи тензорного, или иногда называемого многомерного сингулярного разложения. Вдруг я чего и пропустил, буду Вам очень признателен за полезную информацию!

Цитата(_3m @ Nov 1 2016, 13:38) *

спасибо большое за содействие, но похоже это какой-то другой кварк, так как в Эдисоне у него 100МГц вместо 32Мгц тактовая, а SPI в Эдисоне на 25МГц вместо 16МГц как у этого, да и куча других отличий, например наличие АЦПшки.
yes
посмотрел доку (так как тоже интересуюсь double precision в малых размерах) - возникают сильные сомнения за этот кварк - отбросим сразу 32МГц без FPU, который для ардуины
то есть остается Quark X10** - там 400 МГц, архитектура 486 (то есть никаких суперскаляров, предикторов и т.п.) причем еще упоминается, что FPU упрощенный... как там 800 МФЛОПС/с получится - не верю
бенчмарки какие-нибудь есть?

upd: 800МФЛОПС наверно на сдвоеном ATOMе получилось - ну не сильно удобный проц, чтобы самому делать плату, имхо. может на готовой плате, а так i.mx6q на одну башку дает около 400МФЛОПС (собираюсь еще на soloX погонять еще тесты - может на неделе)

yes
upd:
ну раз поднял SoloX - то вот результат (900МГц)

LINPACK benchmark, Double precision.
Machine precision: 15 digits.
Array size 200 X 200.
Average rolled and unrolled performance:

Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
----------------------------------------------------
64 0.57 87.81% 3.60% 8.59% 167383.990
128 1.15 87.79% 3.60% 8.61% 167315.961
256 2.30 87.80% 3.59% 8.60% 167434.131
512 4.60 87.80% 3.60% 8.60% 167407.423
1024 9.19 87.80% 3.60% 8.60% 167405.928
2048 18.39 87.79% 3.60% 8.61% 167362.387
iiv
Цитата(yes @ Nov 1 2016, 17:44) *
посмотрел доку (так как тоже интересуюсь double precision в малых размерах) - возникают сильные сомнения за этот кварк - отбросим сразу 32МГц без FPU, который для ардуины
то есть остается Quark X10** - там 400 МГц, архитектура 486 (то есть никаких суперскаляров, предикторов и т.п.) причем еще упоминается, что FPU упрощенный... как там 800 МФЛОПС/с получится - не верю
бенчмарки какие-нибудь есть?

ну там SSE2 есть, на них и получилось, в пике должно быть 1.5ГФлопа (500МГц * 2 ядра * 1.5 у этой архитектуры), 800МФлоп/с на double precision получил сам с OpenBLAS. Понравилось, что для этого не пришлось плясать с бубнами, как это обычно происходило на всех до этого мною попробованных не x86 архитектурах. Кварк там нужен только для ввода-вывода, так как у него утверждается, что есть общая память с двумя основными ядрами, то при пользовании основной процессор не должен висеть, но это пока в теории, и я хочу убедиться так ли это. На всех платформах все линуксы во время коммуникаций безжалостно висели, не давая считаться.

В принципе если не хватит мощи Эдисона, можно брать Джоуль, у него как я понимаю, 55ГФлопс на одинарной и 14ГФлопс на двойной должно быть, но это конечно другая ценовая категория, хотя практически те же самые габариты. К нему похоже можно прикрутить Аделаар, и тогда будет терафлоп в кармане, правда на одинарной точности.
yes
с imx6 quad я соврал - цифру запомнил, а плату попутал - мы ставим dual-ы там 400 на два ядра получается

а прогнал сейчас на wandboard-е тест - там что-то типа 800 на всех четырех ядрах (я тупо 4 линпака запустил)
но у imx6q и потребление такое как у Atom-а, нужно радиатор ставить, ну и DDR там 64бита - то есть не сильно удобнее в плане изготовить свою плату


iiv
Цитата(yes @ Nov 1 2016, 23:27) *
но у imx6q и потребление такое как у Atom-а, нужно радиатор ставить, ну и DDR там 64бита - то есть не сильно удобнее в плане изготовить свою плату

так я и говорю, что тут с этим Эдисоном - припаял 70-пиновый коннектор хоть на двухслойку, и ни о чем больше не задумываешься, кстати, когда я его на полную нагружал, он всего-то 1.2Ватта потреблял, а просто включенный - где-то 0.5Ватт. Если правда большие блоки в памяти одновременно с вычислениями таскать, то потребление до 1.7Ватт доходит, но это надо реально постараться. Пока все было без радиатора, температуру не мерил, но где-то слегка больше 40С, то есть теплая, но пальцем совсем не напряжно держаться.
_4afc_
Цитата(iiv @ Nov 1 2016, 21:42) *
так я и говорю, что тут с этим Эдисоном - припаял 70-пиновый коннектор хоть на двухслойку, и ни о чем больше не задумываешься, кстати, когда я его на полную нагружал, он всего-то 1.2Ватта потреблял, а просто включенный - где-то 0.5Ватт. Если правда большие блоки в памяти одновременно с вычислениями таскать, то потребление до 1.7Ватт доходит, но это надо реально постараться. Пока все было без радиатора, температуру не мерил, но где-то слегка больше 40С, то есть теплая, но пальцем совсем не напряжно держаться.


Это всё здорово, но данные то как в него заводить? Хотелось бы синхронно, от 10Мбит и выше.
Т.е. по какому интерфейсу снаружи, и как их принять в ОС?
iiv
Цитата(_4afc_ @ Nov 2 2016, 00:15) *
Это всё здорово, но данные то как в него заводить? Хотелось бы синхронно, от 10Мбит и выше.
Т.е. по какому интерфейсу снаружи, и как их принять в ОС?

во-во, я, думаете, эту тему чтоб пофлеймить открыл что-ли? Не дождетесь! Я правила форума не нарушаю, и именно этот вопрос в головном моем топике и озвучил, надеясь, что кто-то что-то путевое да посоветует...
yes
извиняюсь за офтоп, ну хотелось оценить, если ли какие-то альтернативы imx-у (чтобы индустриальная или еще лучше температура, доступная документация и т.д.) - больше не буду sm.gif

я за imx не агитирую - просто обращаю внимание, что по сети ходит фейковый документ ( с сахары или еще какой помойки), где по fp imx проигрывает атому то ли в 50, то ли в 20 раз - так там авторы компилили для арма с soft-float - то есть с софтверной эмуляцией плавучки
нужно брать тулзы linaro-**eabihf (hf==hard float)

и еще интересно - почему для АРМа протестировать плату сложнее, чем для АТОМа? ведь и там и там Линукс, и там и там кросс-компиляторы - какая разница?
iiv
Цитата(yes @ Nov 2 2016, 11:15) *
извиняюсь за офтоп, ну хотелось оценить, если ли какие-то альтернативы imx-у (чтобы индустриальная или еще лучше температура, доступная документация и т.д.) - больше не буду sm.gif

Пятый эксинос его по вычислительной части как тузик грелку сделает, я на hardkernel.com года три назад купил платку с 5-ым эксиносом, так там на основном процессоре 8ГФлоп на раз на двойной точности и на графической карте 70ГФлоп на одинарной получалось... Такие характеристики пока только лаптопы-десктопы могут обогнать. Но сколько же я трахался, чтобы туда хотя бы лапак поставить!!! Да и ввод-вывод там кривой, если по USB - то все классно, а так - все висит, когда обменивается, так как не было разумных библиотек для обмена с слабых процессорах и счета на сильных процессорах. Вроде сейчас это стало появляться, но мне уже стало не актуально.

Цитата(yes @ Nov 2 2016, 11:15) *
я за imx не агитирую - просто обращаю внимание, что по сети ходит фейковый документ ( с сахары или еще какой помойки), где по fp imx проигрывает атому то ли в 50, то ли в 20 раз - так там авторы компилили для арма с soft-float - то есть с софтверной эмуляцией плавучки
нужно брать тулзы linaro-**eabihf (hf==hard float)

это ежу понятно. Ну или взять imx233 который без хардверной плавающей точки, там вообще 2-3мегафлопса получается sad.gif

Цитата(yes @ Nov 2 2016, 11:15) *
и еще интересно - почему для АРМа протестировать плату сложнее, чем для АТОМа? ведь и там и там Линукс, и там и там кросс-компиляторы - какая разница?

мне не шашечки, а ехать надо, да и платы с памятью разводить времени нет. Я не тестируюсь, а гоняю свои решалки. Они сильно завязаны на библиотеки LAPACK и BLAS, да и FFT часто тоже нужно. Если компилить как есть, производительность почти всегда никудышная, но есть куча специализированных версий BLAS, как то OpenBLAS или ATLAS, которые очень хорошо разгоняются. Я и сам когда-то участвовал в написании бласов, для Крей Ресеча и для Нвидии, но наша фирма не потянула борьбу с Донгаррой и сейчас я - больше пользователь таких библиотек, а не их писатель. На x86 архитектуру этих библиотек завались, а вот на армы эти библиотеки реально криво собраны. Попытка пересобрать обычно приводит к многодневным танцам с бубном, ну, или потерей в 20-30 раз производительности.

Разница в оптимизированной и не оптимизированной библиотеке в том, что большая часть вычислительной линейной алгебры - это операции похожие на dgemm, то есть умножение двух матриц, где объем участвующих данных по порядку меньше, чем выполняемое число умножений и сложений.

Чтобы библиотеку соптимизировать, надо разбивать задачу на подблоки, чтобы все локально вычисляемое лежало в кеше процессора, тогда медленная скорость доступа к памяти не будет заметна на фоне быстрых вычислений. Это очень актуально на быстрых многоядерных процессорах, так как, например, у меня на графической карте 1ТФлоп на двойной, но только 256ГБ/с=32ГСлова/с скорость доступа, то же самое с процессорами - на моем десктопе около 100ГФлоп/с, но он прокачивает около 18ГБ/с=2ГСлова/с данных. На одинарной точности все становится еще плачевнее и даже в два раза меньшая длина слова не спасает.

На Intel Edison то, что я увидел: 0.8ГФлоп/с на двойной, 3ГВ/с=0.4ГСлова/с, то есть процессор только в 2 раза быстрее памяти и оптимизация несказанно проще достигается. На Intel Joule картина должна быть похуже. Но, самое главное, это архитектура, на которой уже такие толпы людей ставили лапаки, что там все просто и очень предсказуемо. Не забываем, что лапак пользуется в матлабе и их клонах, а также практически во всех газодинамических и электромагнитных решалках, которых, на современных персональных компьютерах, включая Атом-архитектуру, просто завались.

ЗЫ: с индустриальным диапазоном - вы конечно правы, но я решил эту задачу по зверски - заставив пользователя принудительно охлаждать аппарат, подключая водяной радиатор.
yes
спасибо за ответ, прошу уточнить про эксинос (с Самсунгом, по-моему, вообще не стоит связываться с закупкой комплектующих, много причин есть для этого, но может я не умею их готовить) :
Эксинос не доступен для простых пользователей? ни сами чипы, ни доки к ним? ну кроме упомянутого ODROID-XU4
для простых пользователей (тм) есть серия Артик https://www.artik.io/modules/artik-1020/ что это такое, модули или/и процессоры, или модули, а процессоры в них нонейм - я так и не понял.
то есть если даже на такие вопросы ответ найти не просто - то если возникнет незначительная какая-нибудь проблема с железом, то это вызовет огромные трудности, ни док, ни комьюнити, где можно спросить - какая-то содомия, а не инженерная деятельность (это к Самсунгу вообще)
даже не понятно - есть ли на них какие-то порты Линукса кроме предустановленного (доступны ли вообще сорцы?), насколько вообще доступно железо (ну например засекьюрено, без ключа не запустишь).... может там только на каком-нибудь Питоне можно скрипт написать для эмуляции ардуины...
AVR
Я правильно понимаю, что сейчас проблема автора темы стоит лишь в том, что непонятно как заставить работать SPI? Меня всегда смущал вопрос SPI/I2C на x86, хотя последний в виде SMBus и DDC присутствует...
iiv
Цитата(AVR @ Nov 2 2016, 19:26) *
Я правильно понимаю, что сейчас проблема автора темы стоит лишь в том, что непонятно как заставить работать SPI? Меня всегда смущал вопрос SPI/I2C на x86, хотя последний в виде SMBus и DDC присутствует...

да, правильно, с дополнительным уточнением: SPI на самом атоме у меня работает, но отжирает практически весь ресурс одного ядра, и совершенно не синхронизуется с ногами АЦПшки, по которым приходит сигнал готовности. Мне это критично. Также мне надо достаточно быстро выдвинуть по GPIO 8 бит (причем засинхронизованными с АЦПшкой), и, естественно это совершенно не реализуемо на на АТОМе, и, ИМХО, должно быть просто реализуемо на Кварке.

Уже почти согласился поставить плиску типа Латиса ICE40, чтобы забить на эти танцы с бубном, то есть с Кварком, но пока танцы с бубном от Латиса тоже не такие малые, как казалось изначально, поэтому пытаюсь решить свою проблему с минимальными телодвижениями. Естественно 5 бакс на латис и 1/4 кв см платы для него на плате не жалко. Альтеру не разводил и боюсь не осилить.

Цитата(yes @ Nov 2 2016, 19:22) *
спасибо за ответ, прошу уточнить про эксинос

если вам ODROID-XU4 или схожее не нравится, переразвести или даже что-то сделать в драйверах - это полная )|(опа, ИМХО, просто не реально. В одном из наших проектов пришлось ставить конвертор плиска - USB3.0 и по нему тащить все данные, а всю синхронизацию вынести в плиску. По-другому - не осилил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.