SSE3
SSE3 додає невелику групу інструкцій x86 для обробки даних із рухомою комою та арифметики, включно з горизонтальними операціями. Вона відрізняється від Supplemental SSE3, яку зазвичай записують як SSSE3.
Що потрібно знати
SSE3 додає невелику групу інструкцій x86 для обробки даних із рухомою комою та арифметики, включно з горизонтальними операціями. Вона відрізняється від Supplemental SSE3, яку зазвичай записують як SSSE3.
Як це працює
SSE3 містить операції горизонтального додавання/віднімання, знакозмінного додавання/віднімання, форми завантаження з дублюванням та LDDQU для окремих випадків невирівняного завантаження цілих чисел. Горизонтальні операції об'єднують елементи всередині вхідних векторів, а не просто застосовують незалежну арифметику до відповідних доріжок. Точний порядок доріжок має значення.
Де це корисно
Арифметика комплексних чисел може комбінувати форми дублювання та додавання/віднімання для впорядкування дійсної та уявної частин. Компілятор може вибрати іншу послідовність, якщо вона швидша на конкретному процесорі. Зручна назва інструкції не є доказом того, що вона оптимальна для кожного циклу.
Як перевірити підтримку та активацію
CPUID.01H:ECX біт 0 перелічує SSE3. Перевіряйте SSSE3 окремо за бітом 9. Визначайте фактичну інструкцію, яка спричинила помилку неприпустимої інструкції, замість того, щоб вгадувати її на основі загальних вимог програми до SSE.
Функція SIMD описує інструкції, а не додаткові ядра. Форма інструкції визначає розрядність елементів, знаковість, округлення, вирівнювання та те, які саме смуги взаємодіють. Програмне забезпечення має зберігати стан регістрів ABI та використовувати підтримуване середовище виконання.
Чого ця функція не гарантує
SSE3 та SSSE3 є окремими прапорцями функцій. Жодна з цих міток не доводить наявності SSE4.1, SSE4.2, POPCNT чи AVX. Доступність і дозволене використання MONITOR/MWAIT також вимагають окремого розгляду на системному рівні, а не припущення, що користувацький код може виконувати кожну пов'язану інструкцію.
Сумісність і продуктивність на практиці
Пізніші назви в сімействі SSE мають окремі біти функцій. Для розгорнутого бінарного файлу перевірте повний мінімальний набір функцій, включно з бібліотеками та кодом запуску. Резервний варіант корисний лише тоді, коли жодна непідтримувана інструкція не виконується до кроку вибору.
Практичний контрольний список для верифікації
- Зафіксуйте точну модель процесора або платформи, а також версії використовуваної програми, ОС і середовища виконання. Збережіть точне формулювання фактичної помилки або вимоги.
- Звіртеся з документацією виробника для цієї точної моделі, потім перевірте фактичні можливості та стан активації в середовищі, де виконується програма.
- Порівняйте кожну вимогу вибраного двійкового файлу або бекенда. Схожої назви функції, псевдоніма чи загального позначення технології недостатньо.
- Переконайтеся, що програма вибрала призначену реалізацію. Використовуйте її задокументовані засоби діагностики та підтримуваний резервний варіант, якщо вимоги не виконуються.
- Вносьте по одній підтримуваній зміні за раз і повторюйте те саме робоче навантаження. Зберігайте оригінальну конфігурацію та можливість відновлення.
Якщо функція вказана, але програмне забезпечення не може її використати
Почніть із компонента, у якому саме стався збій. База даних обладнання описує зафіксовані можливості; операційна система або гіпервізор можуть надавати інше фактичне середовище. Помилка неприпустимої інструкції також потребує дослідження фактичної інструкції, що викликала збій, і двійкової збірки, оскільки пошкодження даних або непов'язана непідтримувана інструкція можуть викликати схожий симптом.
Встановіть версію програми, драйвера або середовища виконання, яка підтримується для цієї конкретної платформи, і за потреби використовуйте задокументовану постачальником базову або резервну збірку. Оновлення програмного забезпечення не може створити інструкцію, якої немає в процесорі. Зміни у прошивці та політиках безпеки повинні відповідати процедурі виробника системи та плану відновлення, а не загальним рецептам оптимізації.
Джерела та межі застосування цього пояснення
Intel 64 and IA-32 Architectures Software Developer's Manual
Ці довідкові матеріали визначають архітектурну поведінку та вимоги до програмного забезпечення. Вони не перевіряють незалежно кожне значення функції на сторінці пов'язаної моделі обладнання. Щодо підтримки моделі використовуйте дані виробника на цій сторінці та перевіряйте фактичну конфігурацію системи. Ця стаття не містить бенчмарків, сертифікації чи дат незалежного огляду.
Джерела та верифікація
Власник авторських прав: Feex. Дата незалежної перевірки не зафіксована. Як ми проводимо дослідження.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Томи 1 і 2 описують зазначені сімейства інструкцій і CPUID; Том 3 описує стан, сторінкову організацію пам'яті, VMX і засоби захисту. Документація з архітектури не підтверджує підтримку для конкретної моделі.
Чи була ця стаття корисною?
Достатньо відповісти "так" або "ні". За бажанням виберіть причину або додайте коротку примітку.
Дякуємо. Це допомагає нам покращувати цю сторінку.