D에서 즉시 할 수 있습니까? 내가 도울 수 있다면 나는 LDC2 컴파일러를 사용하고있다. AVX 내장 함수 사용에 관심이 있습니다.D에 명시적인 simd 코드
답변
DMD에는 AVX 내장 함수가 없습니다. 모든 D 컴파일러가 DMD 프론트 엔드와 druntime 및 phobos를 사용한다는 것을 고려하면, 내가 원하는 것을 수행하는 유일한 방법은 BCS가 제안한대로 인라인 어셈블리를 사용하는 것입니다.
때때로 core.simd
모듈을 확인하고 AVX 내장 함수가 추가되었는지 확인하는 것이 좋습니다.
인라인 ASM이 있습니다. DMD가 SIMD 명령어를 지원한다고 생각합니다. LDC의 이야기가 무엇인지 잘 모릅니다.
인라인 ASM 때문에 손 레지스터 할당 전혀 불가능한 (... 또한 ldc.gccbuiltins_arm
및 ldc.gccbuiltins_ppc
있다). –
Stringer
asm을 원하지 않는다면 '명시 적'으로 무엇을 원합니까? 그들을 사용하는 것이 확실한가요? 내장 목록을 확인하셨습니까? 남은 것은 배열 작업에 사용할 것을 약속 한 컴파일러뿐입니다. – BCS
명시 적으로 gcc 나 clang처럼'_mm256_load_ps'와 같은 내장 함수를 사용하고'__m256' 변수를 선언하는 것을 의미합니다. 어쨌든 고맙습니다. – Stringer
LDC를 사용하는 경우 모듈 ldc.gccbuiltins_x86
에는 __builtin_ia32_vfnmaddps256
과 같은 GCC 스타일의 내장 기호가 포함됩니다.
는
감사합니다. 사진을 가져 오십시오. – Stringer