sse

    1

    1답변

    코드의 일부에서만 벡터화를 활성화하는 방법이 있습니까 (예 : pragma 지시문)? 기본적으로 -ftree-vectorize가 코드의 일부를 컴파일하는 동안 만 활성화되는 것처럼 보입니까? 예를 들어 Pragma simd은 gcc에서 사용할 수 없습니다 ... 그 이유는 벤치마킹에서 -O3 (벡터화가 가능함)을 사용하면 -O2를 사용하는 경우보다 타이밍이

    0

    1답변

    Intel AVX2 명령어를 사용하여 프로그램을 작성하고 있습니다. 내 프로그램에서 최적화 수준 -O2 이상에서만 나타나는 버그를 발견했습니다 (-O1은 좋았습니다). 광범위한 디버깅 후에 버그가있는 영역을 좁 힙니다. 이제이 버그는 컴파일러가 __m256i 변수의 간단한 복사본 할당을 최적화하지 못하게하여 잘못된 것 같습니다. 다음 코드 단편을 고려하십시

    0

    1답변

    확실하지 ICC를 사용하지만 고유 SSE의 주소를 취할 수 연타를 사용할 때이 를 사용하여 같은 일을하려고 불행하게도 때, 많은 문제없이, SSE 내장 함수에 연결하는 방법 sse.h : #include <immintrin.h> static __m128i (*load)(const __m128i *) = &_mm_load_si128; 012,351,6

    0

    1답변

    우리는 다른 연산의 벡터 내장 라이브러리를 만들려고하고 있으며 그 중 하나는 숫자의 절대 값을 얻고 있습니다. 그러나 교수님은 double으로 제한했습니다. 저는 x86 내장 명령 집합에 상당히 익숙하기 때문에 누군가가 저를 계몽 할 수 있기를 바랍니다. 이 내가 지금까지 무엇을 가지고 : void vectorAbs(double *x, double *y,

    2

    2답변

    나는 다음과 같은 코드를 실행하고 : #include <emmintrin.h> #include <stdlib.h> #include <stdio.h> int main(int argv, char** argc) { float a[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};

    0

    1답변

    그래서 VPU에서 실행하는 것이 바람직한 일부 헤비급 알고리즘이 있지만 VPU는 너무 많이 진행되어 VPU가 포화되는 경향이 있습니다. 어쨌든 어떻게 든 VPU를 사용하면 VPU를 사용하여 FPU를 사용하므로 최대 처리량을 얻을 수 있습니다. 감사합니다.

    1

    1답변

    Z 보슨 recommended처럼 필자는 내적 제품 사용을 피하기 위해 열 - 주요 매트릭스 형식을 사용하고 있습니다. 그래도 벡터에 행렬을 곱할 때 피할 수있는 방법은 없습니다. 행렬 곱셈 기법은 행을 효율적으로 추출해야합니다 (행렬을 곱하면됩니다). 매트릭스에 의해 벡터 곱셈, 따라서 우리는 트랜스 : (b * A)^T = A^T * b^T A 매트

    0

    1답변

    다음과 같은 루프가 있습니다. for(int i = 0;i < 28;i++) { a[i] = addr + flag; flag = flag + b[i]; } 여기서 각 값에 대한 플래그를 증가시킵니다. i. 따라서이 경우 SSE를 사용하여 루프 내부의 기능을 구현할 수 있습니다.

    -2

    1답변

    등록 맞추고 : struct{ int value; int pos; }S[10]; 방법 내가 SSE에이 구성을 정렬 할 수 연속 레지스터 위치를 갖도록 등록 만 S [I] .value 및 S [i] .pos가 아닙니다. 당신

    17

    1답변

    gcc 4.4.5를 사용합니다 (예 ... 알고 있습니다.) x86_64. 호환성상의 이유로 SSE2 (또는 그 이전) 지침으로 제한됩니다. 프리 페치에서 큰 이익을 얻으려는 경우 교과서로 사용해야한다고 생각합니다. 32 비트 요소의 배열 ("A")이 있는데, 순차적 인 순서로 배열 될 수는 없습니다. 이 32 비트 요소는 __m128i 데이터의 더 큰 데