처리 속도 향상을위한 병렬 처리 알고리즘을 살펴 봅니다. Agner Fog's vector class library, VCL을 테스트하고 싶습니다.처리 속도를위한 벡터 클래스 라이브러리
Vec16c
(SSE2 명령어 세트) 및 Vec32c
(AVX 명령어 세트)과 같은 다른 벡터 클래스를 선택하는 방법이 궁금합니다.
인텔 ® 아톰 ™ x5-Z8350 프로세서를 사용하고 있으며 사양에 따라 SSE4.2 명령어 세트를 지원합니다.
하드웨어 지원과 관련하여 벡터 클래스를 효과적으로 선택하려면 어떻게해야합니까? 내 프로세서를 위해 AVX 명령어 세트에 권장되는 Vec32c를 사용할 수 있습니까?
'__AVX2__'가 정의되어 있고, 그렇지 않으면 항상'Vec16c'을 사용합니다 (벡터 클래스 헤더가 유용 할 때 SSE4.1/4.2/SSSE3을 사용하게합니다). 코드에서 매크로로 할 수있는 유일한 방법은 다음과 같습니다. AVX512를 확인하고'Vec64c '를 사용하십시오. vectorclass 라이브러리의 주요 목표 중 하나는 다양한 대상 옵션의 가용성을 기반으로 다양한 내장 함수를 추상화하는 것입니다. –
내가 upvote 수 있기 전에 이것은 꽤 중요한 편집을했다,하지만 나는 지금 그것이 옳다는 것을 꽤 확신한다. 실제로 VCL (및 기여한 변경 사항) (https://github.com/pcordes/vectorclass) (AFAIK는 아직 통합되지 않았으므로 Agner가 포함 할 수 있도록 정리해야합니다.)) –