Вопросы с тегом 'simd'

Единая инструкция, множественные данные (SIMD) - это концепция того, что каждая команда работает на небольшом фрагменте или векторе элементов данных. Наборы наборов векторов процессора включают в себя: x86 SSE и AVX, ARM NEON и PowerPC AltiVec. Чтобы эффективно использовать инструкции SIMD, данные должны быть в форме структуры массивов и должны встречаться в более длинных потоках. Наивно "оптимизированный SIMD" код часто удивляет, работая медленнее оригинала.
10
ответов

Как скомпилировать Tensorflow с инструкциями SSE4.2 и AVX?

Это сообщение, полученное от запуска script, чтобы проверить, работает ли Tensorflow: I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successf...
задан 23 дек. '16 в 2:21
5
ответов

Заголовочные файлы для x86 SIMD intrinsics

Какие файлы заголовков предоставляют встроенные функции для разных наборов инструкций для SIM-карт x86 (MMX, SSE, AVX,...)? Невозможно найти такой список в Интернете. Исправьте меня, если я ошибаюсь.
задан 27 июня '12 в 17:44
5
ответов

Ссылка на встроенные функции SSE

Кто-нибудь знает ссылку, в которой перечислены функции встроенных функций SSE для gcc, то есть функции в файлах заголовка < * mmintrin.h > ? Спасибо.
задан 23 авг. '11 в 9:07
3
ответов

Параллельно для vs omp simd: когда использовать каждый?

OpenMP 4.0 представляет новую конструкцию под названием "omp simd". Какая польза от использования этой конструкции над старой "параллельной для"? Когда каждый будет лучшим выбором по сравнению с другим? EDIT: Вот интересная бумага, связанная с дире...
задан 03 февр. '13 в 18:29
3
ответов

Начало работы с SSE

Я хочу узнать больше об использовании SSE. Какими способами можно научиться, помимо очевидного чтения Руководства для разработчиков программного обеспечения Intel® 64 и IA-32? В основном мне интересно работать с встроенными функциями GCC X86.
задан 07 сент. '09 в 17:42
4
ответов

ARM Cortex-A8: В чем разница между VFP и NEON

В процессоре ARM Cortex-A8 я понимаю, что такое NEON, это сопроцессор SIMD. Но блок VFP (Vector Floating Point), который также является сопроцессором, работает как SIMD-процессор? Если да, то какой из них лучше использовать? Я прочитал несколько сс...
задан 04 нояб. '10 в 16:16
8
ответов

Почему strcmp не оптимизирован SIMD?

Я попытался скомпилировать эту программу на компьютере x64: #include <cstring> int main(int argc, char* argv[]) { return ::std::strcmp(argv[0], "really really really really really really really really really" "really really really r...
задан 27 окт. '14 в 13:59
7
ответов

Как определить, совпадает ли память? (* тестирование * для выравнивания, не выравнивание)

Я новичок в оптимизации кода с инструкциями SSE/SSE2, и до сих пор я не очень далеко. Насколько мне известно, общая функция, оптимизированная по SSE, будет выглядеть так: void sse_func(const float* const ptr, int len){ if( ptr is aligned ) {...
задан 14 дек. '09 в 2:15
3
ответов

Как написать переносный simd-код для комплексного мультипликативного сокращения

Я хочу написать быстрый simd-код для вычисления мультипликативной редукции сложного массива. В стандарте C это: #include <complex.h> complex float f(complex float x[], int n ) { complex float p = 1.0; for (int i = 0; i < n; i++) ...
задан 25 июля '17 в 12:13
20
ответов

Как быстро вы можете выполнять линейный поиск?

Я хочу оптимизировать этот линейный поиск: static int linear (const int *arr, int n, int key) { int i = 0; while (i < n) { if (arr [i] >= key) break; ++i; } ...
задан 30 апр. '10 в 4:50
2
ответов

Математическая характеристика Haskell при многократной добавке

Я пишу игру в Haskell, и мой текущий пропуск в пользовательском интерфейсе включает в себя много процедурного генерации геометрии. В настоящее время я сосредоточен на определении производительности одной конкретной операции (псевдокод C-ish): Vec4f ...
задан 25 июня '10 в 7:28
2
ответов

Дорогой обернуть System.Numerics.VectorX - почему?

TL; DR: Почему упаковка System.Numerics.Vectors дорогая, и есть ли что-нибудь, что я могу с этим сделать? Рассмотрим следующий фрагмент кода: [MethodImpl(MethodImplOptions.NoInlining)] private static long GetIt(long a, long b) { var x = AddTh...
задан 05 янв. '16 в 0:31
4
ответов

Почему векторизация цикла не улучшает производительность

Я изучаю эффект векторизации на производительность программы. В связи с этим я написал следующий код: #include <stdio.h> #include <sys/time.h> #include <stdlib.h> #define LEN 10000000 int main(){ struct timeval stTime, endTi...
задан 10 авг. '13 в 9:55
4
ответов

Получить член __m128 по индексу?

У меня есть код, первоначально предоставленный мне кем-то, работающим с MSVC, и я пытаюсь заставить его работать на Clang. Здесь функция, с которой у меня возникают проблемы: float vectorGetByIndex( __m128 V, unsigned int i ) { assert( i <= 3...
задан 27 сент. '12 в 18:06
4
ответов

Что отсутствует/не оптимально в этой реализации memcpy?

Мне стало интересно писать memcpy() как учебное упражнение. Я не буду писать целый трактат о том, что я сделал и не думал, но здесь некоторая реализация парня: __forceinline //因为通常Size已知,内联后编译器可以优化掉大部分无用代码 void* myMemcpy(char* Dst, const char* Src...
задан 08 окт. '14 в 1:02