Skip to content

Commit a37b0b6

Browse files
author
Kirill Kornyakov
committed
Some more comments
1 parent 2862163 commit a37b0b6

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

docs/practice6-simd.md

+15-3
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,16 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
5353
быстрее, чем оригинальный код. Проанализируйте ускорения, сравнивая отчеты
5454
о производительности до и после оптимизации.
5555

56-
## Детальная инструкция по выполнению работы
56+
## Подсказки для выполнения работы
57+
58+
1. В конце функции `ConvertColor_BGR2GRAY_BT709_simd` стоит вызов функции
59+
`ConvertColor_BGR2GRAY_BT709_fpt`. Это сделано лишь для того, чтобы в
60+
стартовом состоянии проходили тесты. Сразу после сбора первичных метрик
61+
производительности стоит этот вызов убрать.
5762

5863
1. Следующий набор SSE операций (интринсиков) достаточен для выполнения
5964
данного задания (см. [подробное описание интринсиков][intrin_guide]):
65+
6066
- `_mm_set_epi8`
6167
- `_mm_set1_epi16`
6268
- `_mm_setzero_si128`
@@ -70,7 +76,8 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
7076
- `_mm_srli_epi16`
7177
- `_mm_packus_epi16`
7278
- `_mm_storeu_si128`
73-
Например, `_mm_set1_epi16` позволяет одной инструкцией установить восемь
79+
80+
1. Например, `_mm_set1_epi16` позволяет одной инструкцией установить восемь
7481
16-битных элементов вектора в одно значение, а `_mm_setzero_si128` — это
7582
эффективный способ обнуления вектора:
7683

@@ -81,12 +88,17 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
8188

8289
1. Для удовлетворения заданных критериев точности достаточно воспользоваться
8390
числами с фиксированной точкой использующими 8 бит для дробной части:
84-
`Q7.8`.
91+
`Q7.8`. Другими словами, предлагается использовать 16 битный тип для
92+
представления коэффициентов.
8593

8694
1. Индексы для векторной распаковки `BGR` формата изображения, а также пример
8795
распаковки для `R` канала являются частью заготовки
8896
`ConvertColor_BGR2GRAY_BT709_simd`.
8997

98+
По завершении реализации векторной версии как обычно стоит проверить
99+
корректность и ускорения, запуская тесты. На Linux ускорение SIMD версии по
100+
отношению к fixed-point достигали порядка 3.5x.
101+
90102
<!-- LINKS -->
91103

92104
[feedback_day6]: https://docs.google.com/forms/d/1iNNPX4Z_2aoWVOfh_ZEUVFuy_AJ4V0n5wZ3p7NWPZO4/viewform

0 commit comments

Comments
 (0)