Вопросы с тегом '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
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
4
ответов
ARM Cortex-A8: В чем разница между VFP и NEON
В процессоре ARM Cortex-A8 я понимаю, что такое NEON, это сопроцессор SIMD.
Но блок VFP (Vector Floating Point), который также является сопроцессором, работает как SIMD-процессор? Если да, то какой из них лучше использовать?
Я прочитал несколько сс...
задан 04 нояб. '10 в 16:16
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
2
ответов
Математическая характеристика Haskell при многократной добавке
Я пишу игру в Haskell, и мой текущий пропуск в пользовательском интерфейсе включает в себя много процедурного генерации геометрии. В настоящее время я сосредоточен на определении производительности одной конкретной операции (псевдокод C-ish):
Vec4f ...
задан 25 июня '10 в 7:28
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
4
ответов
Что отсутствует/не оптимально в этой реализации memcpy?
Я заинтересовался написанием memcpy() в качестве учебного упражнения. Я не буду писать целый трактат о том, что я сделал и о чем не думал, но здесь о реализации парней: __forceinline //因为通常Size已知,内联后编译器可以优化掉大部分无用代码
void* myMemcpy(char* Dst, const ...
задан 08 окт. '14 в 1:02
4
ответов
Почему векторизация цикла не улучшает производительность
Я изучаю эффект векторизации на производительность программы. В связи с этим я написал следующий код:
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#define LEN 10000000
int main(){
struct timeval stTime, endTi...
задан 10 авг. '13 в 9:55
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
1
ответ
Как выбрать AVX сравнить варианты предикатов
В Advanced Vector Extensions (AVX) команды сравнения, такие как _m256_cmp_ps, последним аргументом является предикат сравнения. Выбор предиката подавляет меня. Они кажутся тройным типом, упорядочением, сигнализацией. Например, _CMP_LE_OS "меньше или...
задан 07 июня '13 в 18:52