Nhìn vào các tài liệu intrinsics AVX2 có được tập hợp hướng dẫn tải như VPGATHERDD
:AVX2 thu thập hướng dẫn - tải địa chỉ tính
__m128i _mm_i32gather_epi32 (int const * base, __m128i index, const int scale);
gì không phải là rõ ràng với tôi từ các tài liệu được xem địa chỉ tải tính toán là một yếu tố địa chỉ hoặc một byte địa chỉ, tức là địa chỉ tải cho các phần tử i
:
load_addr = base + index[i] * scale; // (1) element addressing ?
hay:
load_addr = (char *)base + index[i] * scale; // (2) byte addressing ?
Từ Intel docs nó trông giống như nó có thể được (2), nhưng điều này không có ý nghĩa nhiều cho rằng kích thước phần tử nhỏ nhất cho tải tập trung là 32 bit - tại sao bạn muốn tải từ địa chỉ lệch (I E sử dụng quy mô < 4)?
OK - cảm ơn - Tôi đoán điều đó có ý nghĩa sau đó và nó phù hợp với tài liệu. Bạn thực hiện một điểm tốt về tải ví dụ: Giá trị pixel 3 byte. –