simd

    2

    1답변

    저는 XMVECTOR를 테두리 상자의 클래스 멤버로 사용하려고했습니다. 많은 계산을했기 때문에 XMFLOAT3을 프레임 당 한 번만 사용했기 때문에 테두리 상자에 그 중심을 제공하는 메서드가 있습니다. Box& Box::operator=(const Box& box) { _center = box._center; _extents

    3

    2답변

    __m128i 레지스터의 0이 아닌 값을 추출해야합니다. 예를 들어 8 개의 부호없는 short가있는 벡터가 있습니다. __m128i vector {40, 0, 22, 0, 0, 0, 0, 8} 최소한의 SSE 명령으로 40, 22 및 8을 추출하고 싶습니다. 0이 아닌 값은 0이 아닌 값의 배열에 저장됩니다. {40, 22, 8, more values

    1

    2답변

    iPhone 용 접선 거리 기반 OCR 솔루션을 구현하고 있습니다.이 솔루션은 크기가 253x7 인 부동 소수점 행렬의 빠른 곱셈에 크게 의존합니다. 개념의 증거를 들어,이 같은 내 자신의 순진 매트릭스 루틴을 구현했습니다 : 당신이 볼 수 있듯이 Matrix operator*(const Matrix& matrix) const { if(cols !

    4

    1답변

    인텔 sse 내장 함수로 rms를 계산하고 싶습니다. 유사 항목 : float rms(float *a, float *b , int l) { int n=0; float r=0.0; for(int i=0;i<l;i++) { if(finitef(a[i]) && finitef(b[i])) {

    11

    3답변

    로드 명령 등 VPGATHERDD 등이 모여있는 AVX2의 내장 문서를 보면 : 문서에서 나에게 분명하지 않다 무엇 __m128i _mm_i32gather_epi32 (int const * base, __m128i index, const int scale); 는 계산 된로드 주소가 있는지 여부를을 load_addr = base + index[i] * s

    0

    2답변

    무엇이 잘못 되었습니까? 프로그램을 실행하면 Segmentation Fault (Core Dumped)이라고 표시됩니다. 일부 SIMD 명령을 사용했습니다. UNIX 시스템에있는 경우 float function (Point p1, Point p2, int dim) { int k; float result=0.0; float

    12

    2답변

    SIMD 지원을 구현하는 동안 인텔의 내장 함수 가이드를 읽었습니다. 나는 약간의 혼란을 가지고 있으며 나의 질문은 아래와 같다. __m128 _mm_cmpeq_ps (__m128 a, __m128 b) 설명서에는 압축 된 단 정밀도 부동 소수점을 비교하는 데 사용됩니다. "포장 된"의미는 무엇입니까? 플로트 값을 사용하기 전에 어떻게 든 포장해야합니까?

    6

    1답변

    저는 Visual C++ 2012를 사용하여 SSE 내장 함수를 시작하려고합니다. 일부 포인터가 필요합니다. 각 배열은 4 signed short입니다 (각 배열은 64 비트이므로 총 128 개입니다). XMM 레지스터의 상위 비트에 하나를로드하고 하위 비트에 다른 하나를로드하려고합니다. SSE 내장 함수를 사용하여 효율적으로이 작업을 수행 할 수 있습니까

    2

    1답변

    문제 : 나는 SSE2 코드를 해당 코드하는 MMX를 변환. 그리고 거의 1.5x-2x의 속도 향상을 기대했습니다. 그러나 둘 다 똑같은 시간을 보냈습니다. 왜 그럴까요? 시나리오 : 것은 내가 SIMD 명령어 세트 및 성능 비교를 배우고 있어요. 나는 배열 작업을 다음과 같이 수행했습니다 : Z = X^2 + Y^2 여기서 X와 Y는 "char"의 큰 1

    3

    1답변

    저는 VC++ 2012에서 이와 같은 비트를 보이는 루프를 자동 벡터 라이즈하려고합니다 (실제로 흥미로운 계산이 있지만 가능한 한 포인트를 질문 할 목적으로 생략했습니다). parameters: int period; unsigned char* out_array; unsigned char* in_array1; unsigned char* in_array