sse

    2

    1답변

    AVX 본질적인 사용법을 배우고 있으며 다음 코드를 최적화하는 방법에 대해 질문합니다. 내가 본질적인 작업으로 이식하는 방법이지만, 훨씬 쉽고 효율적이라는 잘못된 생각이 든다. float min_value = FLOAT_MAX; float result_p = 0; for loop { float u = .... if(u > 0.0f

    2

    1답변

    두 개의 float32 변수를 더하거나, 합계 할 수 있습니까? SSE 레지스터에서 (예 : 간단한 총알 탄도를 계산하는 동안 비디오 게임에서) 발생하는 모든 합계 및 곱셈을 수행하는 것이 가치가 있습니까?

    3

    1답변

    아래 코드는 객체 감지 프로그램에서 집중적으로 호출되며 실행 시간은 약 80 %입니다. 상당히 속도를 높이는 방법이 있습니까? #define CALC_SUM_(p0, p1, p2, p3, offset) ((p0)[offset] - (p1)[offset] - (p2)[offset] + (p3)[offset]) inline int calc_lbp2(float

    0

    1답변

    저는 SIMD의 기초를 배우므로 SSE와 SSE2에서 작동하는 원리를 알기위한 간단한 코드 조각을 받았습니다. 최근 Visual Studio 컴파일러 대신 gcc가있는 Windows에서 C 코드를 컴파일하기 위해 minGW가 설치되었습니다. 이 예의 목적은 두 개의 부동을 추가 한 다음 세 번째 부동 소수점을 곱하는 것입니다.이 #include <time.

    1

    1답변

    값 또는 참조로 SSE 벡터를 전달하는 것이 더 효율적입니까? typedef float v4sf __attribute__ ((vector_size(16))); //Pass by reference void doStuff(v4sf& foo); //Pass by value v4sf doStuff(v4sf foo); 한편, v4sf는 큰 16 바이트

    2

    1답변

    intrinsics에 C에서 _mm_load_si128을 사용하려고하면 세그먼트 화 오류가 발생합니다. 데이터가 16 비트 정렬되어야하며 유니온이이를 올바르게 수행한다는 것을 알았습니다. 그러나 이것은 내 문제를 해결하지 못합니다. #include <xmmintrin.h> int main(void){ const int N = 8; sh

    1

    1답변

    x64/sse에서 벡터 명령어를 사용하여 x % M을 계산하는 가장 빠르고/가장 빠른 방법은 무엇입니까? (%는 mod/나머지를 의미합니다.) packed mod에 대한 opcode를 찾을 수 없으므로 float에 int를 승격시킨 다음 DIVPS 및 ROUNDPS를 사용하여 x - m * floor (x/m)를 계산하는 것이 가장 좋습니다. 내가 누락 된

    2

    1답변

    저는 6 비트에서 8 비트의 32 비트 정수를 32 비트 실수로 변환해야하는 경우가 종종 있습니다. 필자는 델파이 코드를 사용자 정의 어셈블러 코드로 대체했으며 FPU 변환은 항상 빠르며 일부 컴퓨터에서는 SSE 변환보다 빠릅니다. 변환하는 동안 스케일링 (그래서 곱셈)이있을 필요가 program Project1; {$R *.res} uses wi

    0

    1답변

    설명 : 두 번째 소스 피연산자 (세 번째 피연산자)의 배정 밀도 부동 소수점 값은 조건부로 첫 번째 소스 피연산자 (두 번째 피연산자)의 값과 병합되고 대상 피연산자 (첫 번째 피연산자)에 쓰여집니다. . 직접 비트 [3 : 0]은 대상의 해당 배정 밀도 부동 소수점 값이 두 번째 소스 또는 첫 번째 소스에서 복사되는지 여부를 결정합니다. 단어에 해당하는

    -1

    1답변

    Intel x64 설명서에 32 비트 SSE2 모드에서 XMM 레지스터 0-7이 있다고 표시됩니다. 그렇다면이 레지스터를 사용하는 명령어의 95 %가 0을 건너 뛰고 1-4를 사용하는 이유는 무엇입니까?