내가 수동으로수동 내장 함수 또는 지침
_k_mask = _mm512_int2mask(0x7ff); // 0000 0111 1111 1111
_tempux2_512 = _mm512_mask_loadunpacklo_ps(_tempux2_512,_k_mask, &u_x[POSITION_INDEX_X(k,j,i-5)]);
_tempux2_512 = _mm512_mask_loadunpackhi_ps(_tempux2_512,_k_mask, &u_x[POSITION_INDEX_X(k,j,i-5)]+16);
그리고 컴파일러 ICPC 이러한 오류 메시지를 제공합니다 아래의 내장 함수를 내 코드는 MIC의 SIMD 연산의 관리 및 작성하고자으로 인텔 MIC SIMD 연산을 제어 할 수 있습니다.
test.cpp:574: undefined reference to `_mm512_mask_extloadunpacklo_ps'
test.cpp:575: undefined reference to `_mm512_mask_extloadunpackhi_ps'
내가 _mm512_mask_load_ps을 사용하는 경우 컴파일 할 괜찮을 것이다, 그러나 내 기억은 런타임 오류가 발생합니다 _mm512_mask_load_ps을 사용하므로 64 바이트 정렬 할 수 없습니다.
은 그럼 수동으로
MOV rax,0x7ff
KMOV k1,rax
VMOVAPS zmm1 {k1}, [data_512_1]
VMOVAPS zmm2 {k1}, [data_512_2]
VMULPS zmm3 {k1}, zmm2 zmm1
VMOVAPS [data_512_3] {k1}, zmm3
그리고 컴파일러 ICPC 쇼가 나는, 정말 감사 드리겠습니다 어셈블리 언어의 초보자 해요 다시
test_simd.cpp(30): (col. 10) error: Unknown opcode KMOV in asm instruction .
test_simd.cpp(33): (col. 10) error: Syntax error ZMM1 in asm instruction vmulps.
에러와 같은 인라인 ASM 블록을 작성하는 시도 누구든지 icpc에서 참조를 찾지 못했고 해결 방법을 말할 수 있거나 나에게 몇 가지 자료를 추천 할 수 있다면. (필자는 인텔 ® 제온 피 코 프로세서 명령어 세트 아키텍처 참조 설명서를 읽었지 만 아직 쓰는 방법을 모르겠습니다.)
고마워요.
'-mmic' 옵션으로 컴파일해야합니다. –