Supervised learning. Скорее всего чем больше фич, тем точнее можно решить проблему регрессии. В слоях у них разные аспекты изображения: цвет, форма, силуэт и т.д.
Ну в Вашем случае оптимизация в компиляторе наотсебятила. Я вот тут еще нашел про выравнивание и –fp-model (or /fp) flag в «Using the Intel® Math Kernel Library (Intel® MKL) and Intel® Compilers to Obtain Run-to-Run Numerical Reproducible Results by Todd Rosenquist, Technical Consulting Engineer, Intel® Math Kernal Library and Shane Story, Manager of Intel® MKL Technical Strategy, Intel Corporation»
The Intel compiler also
provides threading via the OpenMP* model. With the latest compiler,
the reduction stage in threaded parallel sections can be forced to
provide reproducible results by setting
KMP_DETERMINISTIC_REDUCTION=yes.
Let’s consider the case where you would like the resulting executable
to produce the same results on the following three systems:
> One 4-core processor supporting SSE 4.2 instructions
> One 4-core processor supporting AVX instructions
> Two 4-core processors supporting AVX instructions
First, to ensure that Intel MKL functions provide reproducible results,
we must make sure all arrays are aligned on 16-byte boundaries (the
mkl_alloc() function suits this purpose). Then, ensure that the number
of threads used on each system remains fixed and does not vary
during the run. By default, Intel MKL uses as many threads as there
are cores, so you should fix the number of threads at four using the
mkl_set_num_threads() function. Finally, because, Intel MKL dispatches
an optimized code path based on the instruction set available, you
need to use the new reproducibility control to configure this: mkl_
cbwr_set(MKL_CBWR_SSE4_2. You will then also need to use an
appropriate –fp-model (or /fp) flag to ensure the compiler returns
consistent results. Applications threaded using OpenMP should also
specify a fixed number of threads (omp_set_num_threads(4)) and set
KMP_DETERMINISTIC_REDUCTION=yes.
Ну это все, конечно, замечательно: красивые диаграммы, много кнопочек. Но тут все таки более подробно бы про Deep Packet Inspection: какие протоколы верхнего уровня, какие алгоритмы фильтрации на основе анализа заголовков и пейлоадов.
Не, ну тут действительно не будет один и тот же резульатат, много факторов, которые вне контроля программиста: состояния в L-кешах, какие из тредов ядра/процессоры немного раньше или немного позже посчитают. В данном случае важно знать допустимую погрешность при вычислениях, чтобы ее учитывать при разработке алгоритма.
Это НЕ нормально, урезание количества знаков после запятой работать должно по одному и тому же алгоритму и выдавать всегда один и тот же (floor, round, ceil) результат, тем более, что они тестировали с тем же количеством нитей, выполняющих задачу. Фортран я не знаю, а вот код на C в подобных случаях всегда имело бы смысл сначало транслировать в ассемблерный код (gcc -S), его анализировать, а потом уже в бинарник, ну или для чистоты вообще реверсить с objdump, чтобы совсем точно.
Cпасибо, я еще нашел Intel® Edison — adding kernel modules to Yocto* — example «batman». В общем: все как с обыкновенным компьютером, на котором есть Линукс и ssh-сервер.
А там можно посмотреть, что с пакетами и сегментами происходит, когда они проходят через виртуальные фаерволы и нат в роутерах? И действительно, насколько оно cisco-like?
Upd. Пардон, не туда комментарий, к ОПу обращался.
У них на сайте есть страница «Intel and Third Party Tools and Libraries available with support for Intel® Xeon Phi™ Coprocessor», там и gcc, и gdb. У gcc сноска:
*NOTE: Our changes to the GCC tool chain, available as of June 2012, allow it to build the coprocessor’s Linux environment, including our drivers, for the Intel® Xeon Phi(tm) Coprocessor. The changes do not include support for vector instructions and related optimization improvements. GCC for Intel® Xeon Phi(tm) is really only for building the kernel and related tools; it is not for building applications. Using GCC to build an application for Intel Xeon Phi Coprocessor will most often result in low performance code due its current inability to vectorize for the new Knights Corner vector instructions. Future changes to give full usage of Knights Corner vector instructions would require work on the GCC vectorizer to utilize those instructions’ masking capabilities
Тут совсем не так как в CUDA. Таски железу раздает линуксовый Completely Fair Scheduler (из RBT), иерархия кешей, постраничная виртуальная память и CR3 регистр с адресом на директорию, как в их CPU. Но вроде бы Xeon Phi и OpenCL понимает, только неясно насколько OpenCL целесообразен с такой архитектурой железа. OpenMP и TBB наверное целесообразнее.
Вот выдержки из их guides:
Another example: while some traditional GPUs are based on HW scheduling of many tiny threads, Intel Xeon Phi coprocessors rely on the device OS to schedule medium size threads. These and other differences suggest that applications usually benefit from tuning to the HW they’re intended to run on.
The operating system createsdata structures known as page table data structures which the hardware uses to translate linear addresses into physical address. These page tabledata structures reside in the memory and created and managed by the operating system or micro-os in case of Intel Xeon Phi. There are four levels of page table data structures:
А есть подобные платформы, на которые можно установить Линукс и писать для периферии модули ядра в kernel space и утилиты в user space на C и AT&T assembly синтаксисе в своем vim без вот этих всех студий, С++ и IDE на, простигосподи, Java?
Не удивительно, что есть трассировщики, для kernel thread ведь создается task_struct, где есть состояние TASK_TRACED. А так да, принтами трейсить — не очень изящное решение.
Сама Tortilla только под WIndows, если судить по исходникам на GitHub: там только файлы проектов для VS: ни мейкфайлов, ни симейкфайлов, и в заголовках всякие #include без условий в макросах для ОС и компилятора. Вообще я смысл в виртуалке с Win вижу только в роли дополнительного слоя для spoofing'а ОС, без адекватных юниксовых sys / socket h и curl / curl h на клиенте совсем скучно с серверами добрых людей обмениваться сегментами.
Там же Intel (x86) и Linux, ничего себе незнакомые.
Upd. Пардон, не туда комментарий, к ОПу обращался.
Вот выдержки из их guides:
— Анонимус Двача
Дальше не читал…