@@ -53,10 +53,16 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
53
53
быстрее, чем оригинальный код. Проанализируйте ускорения, сравнивая отчеты
54
54
о производительности до и после оптимизации.
55
55
56
- ## Детальная инструкция по выполнению работы
56
+ ## Подсказки для выполнения работы
57
+
58
+ 1 . В конце функции ` ConvertColor_BGR2GRAY_BT709_simd ` стоит вызов функции
59
+ ` ConvertColor_BGR2GRAY_BT709_fpt ` . Это сделано лишь для того, чтобы в
60
+ стартовом состоянии проходили тесты. Сразу после сбора первичных метрик
61
+ производительности стоит этот вызов убрать.
57
62
58
63
1 . Следующий набор SSE операций (интринсиков) достаточен для выполнения
59
64
данного задания (см. [ подробное описание интринсиков] [ intrin_guide ] ):
65
+
60
66
- ` _mm_set_epi8 `
61
67
- ` _mm_set1_epi16 `
62
68
- ` _mm_setzero_si128 `
@@ -70,7 +76,8 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
70
76
- ` _mm_srli_epi16 `
71
77
- ` _mm_packus_epi16 `
72
78
- ` _mm_storeu_si128 `
73
- Например, ` _mm_set1_epi16 ` позволяет одной инструкцией установить восемь
79
+
80
+ 1 . Например, ` _mm_set1_epi16 ` позволяет одной инструкцией установить восемь
74
81
16-битных элементов вектора в одно значение, а ` _mm_setzero_si128 ` — это
75
82
эффективный способ обнуления вектора:
76
83
@@ -81,12 +88,17 @@ SSE2/SSSE3, реализующими `SIMD` идиому.
81
88
82
89
1 . Для удовлетворения заданных критериев точности достаточно воспользоваться
83
90
числами с фиксированной точкой использующими 8 бит для дробной части:
84
- `Q7.8 `.
91
+ `Q7.8 `. Другими словами, предлагается использовать 16 битный тип для
92
+ представления коэффициентов.
85
93
86
94
1 . Индексы для векторной распаковки `BGR` формата изображения, а также пример
87
95
распаковки для `R` канала являются частью заготовки
88
96
`ConvertColor_BGR2GRAY_BT709_simd`.
89
97
98
+ По завершении реализации векторной версии как обычно стоит проверить
99
+ корректность и ускорения, запуская тесты. На Linux ускорение SIMD версии по
100
+ отношению к fixed-point достигали порядка 3 .5x.
101
+
90
102
<!-- LINKS -->
91
103
92
104
[feedback_day6]: https:// docs.google.com/forms/d/1iNNPX4Z_2aoWVOfh_ZEUVFuy_AJ4V0n5wZ3p7NWPZO4/viewform
0 commit comments