Изменения

1616 байт добавлено ,  1 год назад
Строка 113: Строка 113:  
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
'''Version 2 Vector Engine<ref>{{cite web|url=https://www.nec.com/en/global/solutions/hpc/sx/vector_engine.html|website=www.nec.com|accessdate=15 September 2020|title=NEC Vector Engine Models}}</ref>'''
+
'''Version 2 Vector Engine<ref name=":2">{{cite web|url=https://www.nec.com/en/global/solutions/hpc/sx/vector_engine.html|website=www.nec.com|accessdate=15 September 2020|title=NEC Vector Engine Models}}</ref>'''
 
!SKU
 
!SKU
 
!20A
 
!20A
Строка 200: Строка 200:  
Каждое из ядер Aurora имеет 64 логических векторных регистра<ref name="nec-architecture">{{Cite web|url=https://www.nec.com/en/global/solutions/hpc/sx/architecture.html |title=NEC SX-Aurora TSUBASA Architecture|website=www.nec.com|access-date=2018-03-20}}</ref>. Регистры имеют глубину 256, т.е. каждому логическому регистру соответствует 256 ячеек, в которых хранятся значения, используемые последовательно выполняемыми операциями. Конструкция регистра представляет собой гибрид обычного для [[Векторный процессор|векторных процессоров]] пайплайна и элементов памяти, предназначенных для [[SIMD]]-обработки, объединённых по 32. Процессор может выполнять с ними как векторную команду, так и SIMD-инструкцию. Регистры подключены к трём блоками умножения и сложения (FMA) с плавающей запятой, которые могут работать параллельно, двум арифметико-логических блокам ALU, обрабатывающих операции с фиксированной запятой, а также конвейру деления и квадратного корня.  
 
Каждое из ядер Aurora имеет 64 логических векторных регистра<ref name="nec-architecture">{{Cite web|url=https://www.nec.com/en/global/solutions/hpc/sx/architecture.html |title=NEC SX-Aurora TSUBASA Architecture|website=www.nec.com|access-date=2018-03-20}}</ref>. Регистры имеют глубину 256, т.е. каждому логическому регистру соответствует 256 ячеек, в которых хранятся значения, используемые последовательно выполняемыми операциями. Конструкция регистра представляет собой гибрид обычного для [[Векторный процессор|векторных процессоров]] пайплайна и элементов памяти, предназначенных для [[SIMD]]-обработки, объединённых по 32. Процессор может выполнять с ними как векторную команду, так и SIMD-инструкцию. Регистры подключены к трём блоками умножения и сложения (FMA) с плавающей запятой, которые могут работать параллельно, двум арифметико-логических блокам ALU, обрабатывающих операции с фиксированной запятой, а также конвейру деления и квадратного корня.  
   −
Используя только блоки FMA и их 32-кратный SIMD-параллелизм, векторное ядро способно выполнять 192 операции двойной точности за цикл.  
+
Используя только блоки FMA и их 32-кратный SIMD-параллелизм, векторное ядро способно выполнять 192 операции двойной точности за цикл<ref name=":2" />.  
    
В «упакованных» векторных операциях, когда два значения одинарной точности загружаются в пространство одного слота двойной точности в векторных регистрах, векторный модуль выполняет вдвое больше операций за такт по сравнению с двойной точностью. Скалярное процессорное устройство (SPU) обрабатывает невекторные инструкции на каждом из ядер.
 
В «упакованных» векторных операциях, когда два значения одинарной точности загружаются в пространство одного слота двойной точности в векторных регистрах, векторный модуль выполняет вдвое больше операций за такт по сравнению с двойной точностью. Скалярное процессорное устройство (SPU) обрабатывает невекторные инструкции на каждом из ядер.
    
=== Память и кэш ===
 
=== Память и кэш ===
Память процессора SX-Aurora TSUBASA состоит из шести высокоскоростных модулей памяти [[HBM2]], реализованных в том же корпусе, что и центральный процессор, с помощью технологии Chip-on-Wafer-on-Substrate. В зависимости от модели процессора модули HBM2 представляют собой 4 или 8<ref>Относительно третьего поколения VE не известно, увеличилось ли вдвое число модулей, или емкость каждого из них. В любом случае, общая ёмкость памяти HBM2 в них удвоена.</ref>  3D-модулей с емкостью 4 или 8 ГБ каждый. Таким образом, процессоры SX-Aurora имеют память HBM2 объемом 24, 48 или 96 ГБ. Модели, оснащенные большими модулями HBM2, имеют пропускную способность памяти 1,2 ТБ/с. Ядра векторного движка первого и второго поколения совместно используют 16 МБ кэша последнего уровня (LLC) - кэша обратной записи, напрямую подключенного к векторным регистрам, и кэша L2 SPU. Размер строки кэша LLC составляет 128 байт. Приоритет хранения данных в LLC можно в некоторой степени контролировать программно, что позволяет программисту указать, какие переменные или массивы должны сохраняться в кеше, что сравнимо с функцией Advanced Data Buffer (ADB) NEC [[SX-ACE]]. В третьем поколении системы ёмкость этого кэша увеличена до 64Мб.
+
Память процессора SX-Aurora TSUBASA состоит из шести высокоскоростных модулей памяти [[HBM2]], реализованных в том же корпусе, что и центральный процессор, с помощью технологии Chip-on-Wafer-on-Substrate. В зависимости от модели процессора модули HBM2 представляют собой 4 или 8<ref>Относительно третьего поколения VE не известно, увеличилось ли вдвое число модулей, или емкость каждого из них. В любом случае, общая ёмкость памяти HBM2 в них удвоена.</ref>  3D-модулей с емкостью 4 или 8 ГБ каждый. Таким образом, процессоры SX-Aurora имеют память HBM2 объемом 24, 48 или 96 ГБ. Модели, оснащенные большими модулями HBM2, имеют пропускную способность памяти 1,2 ТБ/с<ref>{{Cite web|title=SX-Aurora - Microarchitectures - NEC - WikiChip|url=https://en.wikichip.org/wiki/nec/microarchitectures/sx-aurora|access-date=2020-07-02|website=en.wikichip.org|language=en}}</ref>. Ядра векторного движка первого и второго поколения совместно используют 16 МБ кэша последнего уровня (LLC) - кэша обратной записи, напрямую подключенного к векторным регистрам, и кэша L2 SPU. Размер строки кэша LLC составляет 128 байт. Приоритет хранения данных в LLC можно в некоторой степени контролировать программно, что позволяет программисту указать, какие переменные или массивы должны сохраняться в кеше, что сравнимо с функцией Advanced Data Buffer (ADB) NEC [[SX-ACE]]. В третьем поколении системы ёмкость этого кэша увеличена до 64Мб.
    
=== Поставляемые платформы ===
 
=== Поставляемые платформы ===
Строка 219: Строка 219:  
* управляют адресными пространствами виртуальной памяти процессов VE     
 
* управляют адресными пространствами виртуальной памяти процессов VE     
 
* обрабатывают обмен между памятью VH и VE с помощью механизмов [[DMA|VE DMA]]
 
* обрабатывают обмен между памятью VH и VE с помощью механизмов [[DMA|VE DMA]]
* обрабатывают прерывания и исключения процессов VE, а также их системные вызовы.  
+
* обрабатывают прерывания и исключения процессов VE, а также их системные вызовы<ref name="fuse.wikichip.org">{{Cite web|date=2018-12-09|title=A Look at NEC's Latest Vector Processor, the SX-Aurora|url=https://fuse.wikichip.org/news/1833/a-look-at-necs-latest-vector-processor-the-sx-aurora/|access-date=2020-08-27|website=WikiChip Fuse|language=en-US}}</ref>.
 
   
 
   
VEOS поддерживает многозадачность в VE, и почти все системные вызовы Linux поддерживаются в библиотеке VE libc.
+
VEOS поддерживает многозадачность в VE, и почти все системные вызовы Linux поддерживаются в библиотеке VE libc<ref name="fuse.wikichip.org" />.
   −
Выгрузка служб операционной системы на хост устраняет джиттер процессов на Vector Engine за счет относительно небольшого увеличения задержек при обмене данными. Это является критичным для многочисленных задач численного моделирования, использующих, в частности, интерфейс [[Message Passing Interface|MPI]], [[OpenMP]] и аналогичные.
+
Выгрузка служб операционной системы на хост устраняет джиттер процессов на Vector Engine за счет относительно небольшого увеличения задержек при обмене данными<ref name="fuse.wikichip.org" />. Это является критичным для многочисленных задач численного моделирования, использующих, в частности, интерфейс [[Message Passing Interface|MPI]], [[OpenMP]] и аналогичные.
    
Все пакеты, связанные с операционной системой VE, лицензируются по лицензии [[GNU General Public License]] и опубликованы в репозитории [https://github.com/veos-sxarr-nec GitHub].
 
Все пакеты, связанные с операционной системой VE, лицензируются по лицензии [[GNU General Public License]] и опубликованы в репозитории [https://github.com/veos-sxarr-nec GitHub].
Строка 232: Строка 232:  
SDK содержит:     
 
SDK содержит:     
   −
* Компиляторы [[C (язык программирования)|C]], [[C++]] и [[Fortran]], поддерживающие автоматическую векторизацию и автоматическое распараллеливание, а также [[OpenMP.]]
+
* Компиляторы [[C (язык программирования)|C]], [[C++]] и [[Fortran]], поддерживающие автоматическую векторизацию и автоматическое распараллеливание, а также [[OpenMP.]]<ref>{{Cite web|title=NEC SX Aurora TSUBASA — VSC documentation 1.0 documentation|url=https://vlaams-supercomputing-centrum-vscdocumentation.readthedocs-hosted.com/en/latest/antwerp/uantwerp_SX_Aurara_TSUBASA.html|access-date=2020-08-27|website=vlaams-supercomputing-centrum-vscdocumentation.readthedocs-hosted.com}}</ref>
   −
* Инструменты оптимизации производительности: ftraceviewer и veperf.  
+
* Инструменты оптимизации производительности: ftraceviewer и veperf<ref>{{Cite web|last=|first=|date=|title=NEC SX-Aurora TSUBASA Documentation|url=https://www.hpc.nec/documentation|archive-url=|archive-date=|access-date=|website=}}</ref>.
* Библиотеки численных расчётов, оптимизированные для VE: [[BLAS]], [[SBLAS]], [[LAPACK]], [[SCALAPACK]], [[ASL]], [[Heterosolver]].  
+
* Библиотеки численных расчётов, оптимизированные для VE: [[BLAS]], [[SBLAS]], [[LAPACK]], [[SCALAPACK]], [[ASL]], [[Heterosolver]]<ref>{{Cite web|title=NEC SX-Aurora TSUBASA Vector System|url=https://www.rz.uni-kiel.de/en/our-portfolio/hiperf/nec-sx-aurora-tsubasa-vector-system|access-date=2020-08-27|website=Rechenzentrum der CAU|language=en}}</ref>.
 
   
 
   
NEC MPI также является собственной реализацией Message Passing Interface от NEC и соответствует спецификации стандарта [[Message Passing Interface|MPI-3.1]].
+
NEC MPI также является собственной реализацией Message Passing Interface от NEC и соответствует спецификации стандарта [[Message Passing Interface|MPI-3.1]]<ref>{{Cite web|last=|first=|date=|title=NEC MPI User's Guide|url=https://www.hpc.nec/documents/mpi/NEC_MPI_User_Guide_en/chap1.html|archive-url=|archive-date=|access-date=|website=}}</ref>.
   −
Могут быть созданы гибридные программы, которые используют VE в качестве ускорителя для определенных функций ядра хоста, используя специализированную библиотеку вызовов, совместимую с языком С для выгрузки задач на Vector Engine.  
+
Могут быть созданы гибридные программы, которые используют VE в качестве ускорителя для определенных функций ядра хоста, используя специализированную библиотеку вызовов, совместимую с языком С для выгрузки задач на Vector Engine<ref>{{Cite web|url=https://github.com/SX-Aurora/veoffload|title=SX-Aurora/veoffload|website=GitHub|language=en|access-date=2018-03-21}}</ref>.  
    
В некоторой степени интерфейс выгрузки задач (Vector Engine Offloading) на VE сравним с [[OpenCL]] и [[CUDA]], но обеспечивает более простой API и позволяет вести разработку ПО на обычном C, C++ или Fortran, используя при этом  практически любой системный вызов в VE.  
 
В некоторой степени интерфейс выгрузки задач (Vector Engine Offloading) на VE сравним с [[OpenCL]] и [[CUDA]], но обеспечивает более простой API и позволяет вести разработку ПО на обычном C, C++ или Fortran, используя при этом  практически любой системный вызов в VE.