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

Чем заменить Intel Edison?

у многих есть непонимание

Есть, но только не на то, что Вы расписали, а вот на это:

 

представьте, что у меня есть 100мкс, за которые мне надо

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


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

даже в DE0-SOC в HPSной части не может выполнить 3к таких операций за 100мкс. А вот Интел Эдисон - может...

Интересно было бы узнать, почему два ядра Cortex-a9 на 800 МГц уступают двум x86 на 500МГц?

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


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

Интересно было бы узнать, почему два ядра Cortex-a9 на 800 МГц уступают двум x86 на 500МГц?

А у него есть двойная точность хотя бы за такт? В эмуляции через одинарную оно только десятки мегафлопс против 800 реальных и 1000 пиковых показывает

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


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

А у него есть двойная точность хотя бы за такт? В эмуляции через одинарную оно только десятки мегафлопс против 800 реальных и 1000 пиковых показывает

Могу прогнать какой нибудь код на одном ядре.

Можете дать наводку на нужный?

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


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

TMS320C6678

linux на нём нормально живёт.

 

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

 

LAPACK оптимизированный под него вроде есть, бенчмарки тоже можно посмотреть.

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


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

У многих есть понимание того факта что задачи которые Вы описываете на эдисонах не решают и не пытаются...

Вы когда stepdown от одной литиевой ячейки проектируете, наверное не будете ключ на 300В закладыватся, вот и я, хорошо понимая, что на каком железе можно заимплементировать, не поставлю туда десятый стратикс с 12 ядрами ксенона и парой нвидишных тесел. (edited, и чего только мобильник не подставит а глаза прохлопали)

 

А возвращаясь моему исходному вопросу просто продолжаю искать недорогое решение на например четырех ядрах А15 но в модульном исполнении, чтоб взял и поставил, и память не разводить и линукс не хачить.

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


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

Вы когда stepdown от одной литиевой ячейки проектирует, наверное не будете ключ на 300В закладывать, вот и я хорошо понимая что на каком железе можно заимплементировать не поставлю туда десятый стратикс с 12 ядрами ксенона и парой нвидишных тесно.

Степдаун для литиевых батареек не делаю :laughing: но точно могу сказать что в другую сторону перегибать смысла нет- и об этом мой пост который Вы цитируете.

А возвращаясь моему исходному вопросу просто продолжаю искать недорогое решение на например четырех ядрах А15 но в модульном исполнении

Гуглите любой SoM с заданным ядром- например OMAP 5, но я бы смотрел камни с Cortex 5x, например на последних Snapdragon.

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


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

Можете дать наводку на нужный?

конечно, простенький запускатель приложил, чтобы посмотреть как и что получается. Код просто компилится, но при линковке поросит BLAS библиотеку, на данный момент рулит http://www.openblas.net/ , но не догма. Если не получится ее поставить, то можно закомментировать два последних вызова и соответствующие функции, тогда код ничего не просит, но, обычно и не показыват хороших результатов.

 

Вывод на экран у этого кода для каждой строки:

<название операции> <характерный размер вектора или матрицы> <число повторений для усреднения> <суммарное время работы> <достигаемые флопы>

 

На ИнтелЭдисоне приатачил выхлоп, на начало смотреть не интересно, а вот в конце на матрица на матрицу

 

optimized float gemm: Alpha*A*B + Beta*C -> C
sgemm: 8 32769 0.127395 263.397MFlop/s
sgemm: 16 4097 0.0524575 639.806MFlop/s
sgemm: 32 513 0.0312485 1075.89MFlop/s
sgemm: 64 65 0.0247532 1376.74MFlop/s
sgemm: 128 9 0.0136254 2770.47MFlop/s
sgemm: 256 2 0.0209692 3200.35MFlop/s
sgemm: 512 1 0.0768407 3493.4MFlop/s
sgemm: 1024 1 0.593705 3617.09MFlop/s
sgemm: 2048 1 4.73977 3624.62MFlop/s

optimized double gemm: Alpha*A*B + Beta*C -> C
dgemm: 8 32769 0.208578 160.877MFlop/s
dgemm: 16 4097 0.114323 293.577MFlop/s
dgemm: 32 513 0.091746 366.446MFlop/s
dgemm: 64 65 0.086877 392.264MFlop/s
dgemm: 128 9 0.046618 809.746MFlop/s
dgemm: 256 2 0.080234 836.414MFlop/s
dgemm: 512 1 0.318708 842.261MFlop/s
dgemm: 1024 1 2.50245 858.153MFlop/s
dgemm: 2048 1 19.9557 860.901MFlop/s

 

выше я получал результаты только на четырех ядрах А15 или A57 и обычных х86 или GPU, на остальных ембеддед платформах получить от 800МФлопс на двойной точности на умножении матриц размера от 128х128 обычно очень затруднительно.

 

С Лапаком тесты в этом примере убрал, ибо не всегда на раз можно скомпилировать и слинковать фортрановский код.

res.txt

c.zip

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


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

да, конечно, согласен с Вами, и не только у него, а и на эксиносе можно схожее получить если MALI T6* например, задействовать, только ведь если вписываться в схожие габариты, то это 1. конский ценник, 2. недецкая работа по разводке, и того, и другого хотелось бы избежать, чем собственно ИнтелЭдисон и нравился.

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


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

Вот что на одном ядре Cortex-A9 (800 МГц, Cyclone V SoC Baremetal) получилось:

integer copy: A(i) -> B(i)
icopy: 1 134217728 2.34881 57.1429MFlop/s
icopy: 2 67108864 1.76161 76.1905MFlop/s
icopy: 4 33554432 0.461374 290.909MFlop/s
icopy: 8 16777216 0.356516 376.47MFlop/s
icopy: 16 8388608 0.293602 457.142MFlop/s
icopy: 32 4194304 0.293602 457.142MFlop/s
icopy: 64 2097152 0.293601 457.143MFlop/s
icopy: 128 1048576 0.308019 435.745MFlop/s
icopy: 256 524288 0.30081 446.188MFlop/s
icopy: 512 262144 0.297206 451.598MFlop/s
icopy: 1024 131072 0.295404 454.353MFlop/s
icopy: 2048 65536 0.294503 455.743MFlop/s
icopy: 4096 32768 0.294054 456.439MFlop/s
icopy: 8192 16384 0.299379 448.32MFlop/s
icopy: 16384 8192 0.518028 259.094MFlop/s
icopy: 32768 4096 0.433614 309.533MFlop/s
icopy: 65536 2048 0.423497 316.927MFlop/s
icopy: 131072 1024 1.57213 85.3734MFlop/s
icopy: 262144 512 1.70374 78.7783MFlop/s
icopy: 524288 256 1.671 80.3217MFlop/s
icopy: 1048576 128 1.61824 82.9406MFlop/s

integer axpy: A(i)*Alpha + B(i) -> B(i)
iaxpy: 1 33554432 0.754976 88.8887MFlop/s
iaxpy: 2 16777216 0.545259 123.077MFlop/s
iaxpy: 4 8388608 0.230687 290.909MFlop/s
iaxpy: 8 4194304 0.209715 320MFlop/s
iaxpy: 16 2097152 0.209715 320MFlop/s
iaxpy: 32 1048576 0.209715 320MFlop/s
iaxpy: 64 524288 0.209715 320MFlop/s
iaxpy: 128 262144 0.210043 319.501MFlop/s
iaxpy: 256 131072 0.209879 319.75MFlop/s
iaxpy: 512 65536 0.209797 319.875MFlop/s
iaxpy: 1024 32768 0.209757 319.936MFlop/s
iaxpy: 2048 16384 0.209737 319.967MFlop/s
iaxpy: 4096 8192 0.335971 199.746MFlop/s
iaxpy: 8192 4096 0.364168 184.28MFlop/s
iaxpy: 16384 2048 0.366996 182.86MFlop/s
iaxpy: 32768 1024 0.367101 182.808MFlop/s
iaxpy: 65536 512 0.694582 96.6176MFlop/s
iaxpy: 131072 256 0.86259 77.7993MFlop/s
iaxpy: 262144 128 0.885185 75.8134MFlop/s
iaxpy: 524288 64 0.896598 74.8483MFlop/s
iaxpy: 1048576 32 0.899761 74.5852MFlop/s

integer gemm: Alpha*A*B + Beta*C -> C
igemm: 1 16777217 0.566232 59.2592MFlop/s
igemm: 2 2097153 0.275251 121.905MFlop/s
igemm: 4 262145 0.206768 162.281MFlop/s
igemm: 8 32769 0.128414 261.307MFlop/s
igemm: 16 4097 0.08595 390.49MFlop/s
igemm: 32 513 0.067358 499.124MFlop/s
igemm: 64 65 0.058329 584.25MFlop/s
igemm: 128 9 0.071259 529.74MFlop/s
igemm: 256 2 0.114164 587.829MFlop/s
igemm: 512 1 0.890407 301.475MFlop/s
igemm: 1024 1 8.25183 260.243MFlop/s

float axpy: A(i)*Alpha + B(i) -> B(i)
faxpy: 1 33554432 0.754976 88.8887MFlop/s
faxpy: 2 16777216 0.524288 128MFlop/s
faxpy: 4 8388608 0.241172 278.261MFlop/s
faxpy: 8 4194304 0.220201 304.762MFlop/s
faxpy: 16 2097152 0.220201 304.762MFlop/s
faxpy: 32 1048576 0.220201 304.762MFlop/s
faxpy: 64 524288 0.220201 304.762MFlop/s
faxpy: 128 262144 0.220528 304.31MFlop/s
faxpy: 256 131072 0.220365 304.535MFlop/s
faxpy: 512 65536 0.220283 304.648MFlop/s
faxpy: 1024 32768 0.220242 304.705MFlop/s
faxpy: 2048 16384 0.220223 304.731MFlop/s
faxpy: 4096 8192 0.342565 195.901MFlop/s
faxpy: 8192 4096 0.365098 183.811MFlop/s
faxpy: 16384 2048 0.367064 182.826MFlop/s
faxpy: 32768 1024 0.367172 182.772MFlop/s
faxpy: 65536 512 0.698279 96.1061MFlop/s
faxpy: 131072 256 0.865678 77.5217MFlop/s
faxpy: 262144 128 0.887534 75.6127MFlop/s
faxpy: 524288 64 0.898818 74.6635MFlop/s
faxpy: 1048576 32 0.901088 74.4754MFlop/s

float gemm: Alpha*A*B + Beta*C -> C
fgemm: 1 16777217 0.534774 62.7451MFlop/s
fgemm: 2 2097153 0.251659 133.333MFlop/s
fgemm: 4 262145 0.182846 183.513MFlop/s
fgemm: 8 32769 0.145617 230.436MFlop/s
fgemm: 16 4097 0.124048 270.562MFlop/s
fgemm: 32 513 0.114452 293.747MFlop/s
fgemm: 64 65 0.113251 300.913MFlop/s
fgemm: 128 9 0.143249 263.518MFlop/s
fgemm: 256 2 0.234565 286.099MFlop/s
fgemm: 512 1 1.29243 207.698MFlop/s
fgemm: 1024 1 11.4308 187.869MFlop/s

double axpy: A(i)*Alpha + B(i) -> B(i)
daxpy: 1 33554432 0.587203 114.286MFlop/s
daxpy: 2 16777216 0.54526 123.077MFlop/s
daxpy: 4 8388608 0.482345 139.13MFlop/s
daxpy: 8 4194304 0.482345 139.13MFlop/s
daxpy: 16 2097152 0.482345 139.13MFlop/s
daxpy: 32 1048576 0.482345 139.13MFlop/s
daxpy: 64 524288 0.482345 139.13MFlop/s
daxpy: 128 262144 0.484311 138.566MFlop/s
daxpy: 256 131072 0.483328 138.847MFlop/s
daxpy: 512 65536 0.482837 138.989MFlop/s
daxpy: 1024 32768 0.482591 139.06MFlop/s
daxpy: 2048 16384 0.71855 93.3948MFlop/s
daxpy: 4096 8192 0.748127 89.7025MFlop/s
daxpy: 8192 4096 0.756389 88.7227MFlop/s
daxpy: 16384 2048 0.756724 88.6834MFlop/s
daxpy: 32768 1024 1.36238 49.2584MFlop/s
daxpy: 65536 512 1.74453 38.4682MFlop/s
daxpy: 131072 256 1.7909 37.4722MFlop/s
daxpy: 262144 128 1.79451 37.3967MFlop/s
daxpy: 524288 64 1.79465 37.3937MFlop/s
daxpy: 1048576 32 1.79501 37.3864MFlop/s

double gemm: Alpha*A*B + Beta*C -> C
dgemm: 1 16777217 0.503317 66.6666MFlop/s
dgemm: 2 2097153 0.263455 127.363MFlop/s
dgemm: 4 262145 0.201197 166.775MFlop/s
dgemm: 8 32769 0.163722 204.954MFlop/s
dgemm: 16 4097 0.144506 232.258MFlop/s
dgemm: 32 513 0.135318 248.452MFlop/s
dgemm: 64 65 0.143856 236.895MFlop/s
dgemm: 128 9 0.163413 231.002MFlop/s
dgemm: 256 2 0.345664 194.145MFlop/s
dgemm: 512 1 2.47972 108.252MFlop/s
dgemm: 1024 1 20.7655 103.416MFlop/s

 

BLAS библиотеку не ставил, она только под x86, насколько я понял?

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


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

да, конечно, согласен с Вами, и не только у него, а и на эксиносе можно схожее получить если MALI T6* например, задействовать, только ведь если вписываться в схожие габариты, то это 1. конский ценник, 2. недецкая работа по разводке, и того, и другого хотелось бы избежать, чем собственно ИнтелЭдисон и нравился.

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

печально, что этого не случилось.

 

купите Edison сейчас. на 2 года вперёд.

в другом случае у вас нет вариантов ни выполнить текущие заказы, ни предложить альтернативу годом позже.

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


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

Вот что на одном ядре Cortex-A9 (800 МГц, Cyclone V SoC Baremetal) получилось:

...
dgemm: 32 513 0.135318 248.452MFlop/s
...

классно, спасибо огромное, значит у меня руки кривые, я раз так в 10 меньше получал года два назад с DE0-SOC, и поэтому забил на эту затею!!!!

 

BLAS изначально была сделана на x86, но сейчас есть инсталляторы (OpenBLAS, ATLAS, GotoBLAS) которые позволяют в линукс или сугвине скомпилить версию библиотеки, заточенную под конкретную архитектуру. Иногда такая компиляция длится несколько дней. Даже если это не будет работать, то я могу свой подкласс версий бласа протестировать и соптимизировать под этот процессор. Цифра 248МФлопс на двойной точности с одного ядра на матрице 32х32 на этом примере означает то, что можно получить что-то порядка 800МФлопс, а может и больше!

 

Спасибо большое!!!

 

Это реально означает, что Cyclone SOC с бареметалом и планкой памяти однозначно решит всю задачу, а результаты уже можно будет сбрасывать на любой копеешный блок на каком-нибудь imx223, чтобы на нем юзер управлял самим экспериментом и с него забирал данные.

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


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

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

Немного не в тему, но по сути. Просто хочется понять.

Если такая предельно высокая производительность вычислений Вам нужна для того, чтобы применять магниты с барахолки, то нет ли здесь иной возможности? Вряд ли Ваш прибор должен будет работать с любыми магнитами с барахолки, так? То есть, замена их ведь не предусматривается и для каждого конкретного экземпляра будут свои конкретные магниты?

Тогда, может, тогда возможно произвести "заводскую" калибровку один раз и иметь в памяти прибора данные о его магнитах?

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


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

Немного не в тему, но по сути. Просто хочется понять.

Если такая предельно высокая производительность вычислений Вам нужна для того, чтобы применять магниты с барахолки, то нет ли здесь иной возможности? Вряд ли Ваш прибор должен будет работать с любыми магнитами с барахолки, так? То есть, замена их ведь не предусматривается и для каждого конкретного экземпляра будут свои конкретные магниты?

Тогда, может, тогда возможно произвести "заводскую" калибровку один раз и иметь в памяти прибора данные о его магнитах?

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

калиброваться относительно водорода в измеряемом образце в таких условиях - необходимость.

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


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

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

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

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

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

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

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

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

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

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