Pull to refresh

Comments 8

А gcc это скомпилить можно?
Native для KNC можно, но будет работать медленно (по сравнению с ICC).

Offload (с помощью OpenMP 4.x) для KNC нельзя, но можно будет для KNL.
С KNL все и так ясно — совместимость с Xeon полная, на нем все что угодно заработает. А вот с KNC маркетинговый отдел Интела немного покривил душой, его юзабельность не отличается от любой ARM или MIPS эмбедедовки (для обычного cpu-кода а не научных вычислений имеется ввиду).
У них на сайте есть страница «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:

Page Global Directory
Page Upper Directory
Page Middel Directory
Page Table
Вот только интересно, что быстрее, топовый GPU (может даже два), или сопостовимый по стоимости Xeon Phi?
Зависит от задачи (например, как много бранчей в циклах и т.п.)
Пример задачи когда Xeon Phi лучше чем GPU: вычисление двух-элетронных интегралов (two-elecron integrals) в вычислительной квантовой механики. Вычисление требует большого количества промежуточных значений, для хранения которых shared memory кое-как хватает. Алгоритм реализовать, конечно можно, но трудозатраты очень больший и ускорение далеко не впечатляющее.
Пример задачи когда GPU лучше: молекулярная динамика. Код параллелится относительно не сложно (обычно трудности возникают при использовании нескольких GPU), а прирост производительности (по сравнению с CPU) десятки раз.
Sign up to leave a comment.

Articles