을 찾을 수없는이 내 첫 번째 질문 ;-) 내가 CUDA 응용 프로그램 (ccminer)에서 AVX를 사용하려고하지만, NVCC는 오류가 표시됩니다 /usr/local/cuda/bin/nvcc -Xcompiler "-Wall -mavx" -O3 -I . -Xptxas "-abi=no -v" -gencode=arch=compute_50,code=\"sm_50
두 개의 double 배열의 요소를 입력 방식으로 추가하고 세 번째 배열에 결과를 저장하는 함수가 필요합니다. 현재 사용하고 있습니다 (단순화) void add(double* result, const double* a, const double* b, size_t size) {
memcpy(result, a, size*sizeof(double));
4x4 행렬을 만들고 각각을 변환하여 8x8 행렬을 전이시킬 수 있습니다. 이것은 내가 원하지 않는 일입니다. 또 다른 질문으로는 하나의 대답은 gave a solution이며 8x8 매트릭스의 경우 24 개의 명령어 만 필요합니다. 그러나 이것은 부유물에는 적용되지 않습니다. AVX2에는 256 비트의 레지스터가 포함되어 있으므로 각 레지스터는 8 개의
MSVC에서 작동하는 일부 SIMD 코드를 Xcode 6에서 Clang으로 컴파일하려고합니다. 불행히도 배열 액세스 연산자가 사용자 정의 벡터 클래스에서 오버로드되어 수정할 수없는 오류가 발생합니다. 벡터 템플릿에는 SIMD 내장 함수를 사용하는 길이가 4와 8 인 배열에 대한 특수화가 있지만 벡터 요소에 대한 참조를 반환하는 배열 액세스 연산자 (해당 요
32 비트 모드에서 x86에서 실행되는 일부 코드 작업 중입니다. 이 모드에서는 8 개의 SIMD/AVX2-Registers (YMM0-7) 만 자유롭게 사용할 수 있다는 것을 알고 있습니다. 그러나 내 벡터 서브 루틴 중 일부는 때로는 그 양의 레지스터를 동시 적으로 사용합니다 (도로의 아래 어딘가에 여전히 필요합니다 - 나중에는 그리 멀지 않습니다).
안녕 내 xmm 레지스터에 내 모든 값을 인쇄하는 데 문제가 있습니다. vmovupd ymm14, [rsp]
는 이제 ymm14 4 수있다 : 나는 그래서 사용자 입력 4 개 숫자와 내가 사용 YMM14 레지스터로 이동 나는 조립에 여전히 매우 새로운 오전 나는 SSE와 AVX를 사용하고 생각합니다. 다음으로 xmm0 및 xmm1로 이동하려고 시도합니다
현재 코드를 병렬화하기 위해 AVX Intrinsics를 조사 중입니다. 지금은 벤치 마크를 작성하여 얼마나 빠른 속도를 낼 수 있는지보고 싶습니다. void randomtable (uint32_t crypto[4][64])
{
int k = 1;
for (int i=0;i<4;i++)
{
k++;
for
Intel 프로세서에서 다음 작업의 최대 대역폭을 얻고 싶습니다. for(int i=0; i<n; i++) z[i] = x[i] + y[i]; //n=2048
여기서 x, y 및 z는 플로트 배열입니다. Haswell, Ivy Bridge 및 Westmere 시스템에서이 작업을 수행하고 있습니다. 내가 이런 짓을하면 나는 원래 나는 각 시스템에 예상되는
long을 double 형으로 입력하는 방법을 알아 내는데 어려움이 있습니다. 나는 긴 정수를 읽고 AVX 레지스터의 계산에 사용하려고합니다. 그러나 long int를 AVX 레지스터 내에서 사용되는 배정도 부동 소수점 형으로 캐스팅하는 방법을 알아낼 수는 없습니다. long int를 double precision float로 바꾸려면 어떻게해야합니까? 만
스택에 4 개의 플러 팅 포인트 번호를 입력하고 ymm (avx) 레지스터로 전송하려고합니다. 내 친구가 같은 프로젝트에서 작업하고 코드는 동일하지만 vmovupd ymm0, [rsp]를 호출하면 코어 덤프가 발생합니다. 디버그 프로그램으로 그 전화를 좁혔습니다. ;===== Begin code area =============================