2012-12-22 3 views
3

D에서 즉시 할 수 있습니까? 내가 도울 수 있다면 나는 LDC2 컴파일러를 사용하고있다. AVX 내장 함수 사용에 관심이 있습니다.D에 명시적인 simd 코드

답변

1

DMD에는 AVX 내장 함수가 없습니다. 모든 D 컴파일러가 DMD 프론트 엔드와 druntime 및 phobos를 사용한다는 것을 고려하면, 내가 원하는 것을 수행하는 유일한 방법은 BCS가 제안한대로 인라인 어셈블리를 사용하는 것입니다.

때때로 core.simd 모듈을 확인하고 AVX 내장 함수가 추가되었는지 확인하는 것이 좋습니다.

+0

감사합니다. 사진을 가져 오십시오. – Stringer

1

인라인 ASM이 있습니다. DMD가 SIMD 명령어를 지원한다고 생각합니다. LDC의 이야기가 무엇인지 잘 모릅니다.

+0

인라인 ASM 때문에 손 레지스터 할당 전혀 불가능한 (... 또한 ldc.gccbuiltins_armldc.gccbuiltins_ppc있다). – Stringer

+0

asm을 원하지 않는다면 '명시 적'으로 무엇을 원합니까? 그들을 사용하는 것이 확실한가요? 내장 목록을 확인하셨습니까? 남은 것은 배열 작업에 사용할 것을 약속 한 컴파일러뿐입니다. – BCS

+0

명시 적으로 gcc 나 clang처럼'_mm256_load_ps'와 같은 내장 함수를 사용하고'__m256' 변수를 선언하는 것을 의미합니다. 어쨌든 고맙습니다. – Stringer

1

LDC를 사용하는 경우 모듈 ldc.gccbuiltins_x86에는 __builtin_ia32_vfnmaddps256과 같은 GCC 스타일의 내장 기호가 포함됩니다.