문제

AC/C ++ API를 제공하는 휴대용 SIMD 라이브러리, Intel 및 AMD Extensions 및 Visual Studio, GCC 호환을 추천 할 수 있습니까? 512x512 배열의 더블을 확장하는 것과 같은 속도를 높이고 자합니다. 벡터 도트 제품, 매트릭스 곱셈 등

지금까지 내가 찾은 것은 다음과 같습니다.http://simdx86.sourceforge.net/ 그러나 첫 번째 페이지에서는 Visual Studio에서 컴파일되지 않습니다.

내가 수집 한 것에서 AMD에서 작동하지 않는 인텔 IPP도 있습니다. 그리고 AMD의 Framewave가 있지만, 라이브러리를 컴파일하고 연결하는 데 문제가 있었고 포럼은 완전히 죽었습니다. 누구든지 Framewave를 어디서나 사용하는 사람이 있습니까?

감사.

도움이 되었습니까?

해결책

매트릭스 및 벡터에 대한 높은 수준의 작업을 언급하기 때문에 아틀라스, 인텔의 MKL, 혈장, 그리고 불꽃 관심이있을 수 있습니다.

일부 C ++ 매트릭스 수학 라이브러리에는 Boost, Armadillo, Eigen, IT ++ 및 Newmat의 Ublas가 포함됩니다. Pooma Library에는 아마도 이러한 것들 중 일부가 포함되어있을 것입니다. 이 질문 또한 MTL을 나타냅니다.

낮은 수준의 휴대 성 프리미티브를 찾고 있다면, 내 동료가 SSE2, Altivec, VSX, Larrabee 및 셀 SPE 벡터 작업 주위에 래퍼를 개발했습니다. 그것은 우리에서 찾을 수 있습니다 소스 저장소, 그러나 작업의 일부로 배포하려는 경우 라이센스 (Academic)가 적절하지 않을 수 있습니다. 또한 대상이되는 응용 프로그램 요구의 범위를 다루기 위해 여전히 중요한 개발 중입니다.

다른 팁

고유 이다 MPL2-SSE, Neon 및 Altivec에 최적화 된 벡터 / 매트릭스 수학이있는 레이더 전용 C ++ 라이브러리. 애드온 모듈에서 더 정교한 수학 작업이 있습니다.

macstl을 확인하십시오 : http://www.pixelglow.com/macstl/

노력하다 liboil 또는 관련 오크. 특히 ORC는 흥미 롭습니다. 아키텍처 특정 코드로 편집 된 고급 어셈블리 언어를 구현합니다. 간단한 래퍼 라이브러리보다 훨씬 정교합니다.

어셈블러로 내려 가거나 더러워지면 모든 SIMD 지침에 항상 고유 함수를 사용할 수 있습니다. 그것들은 프로세서에 따라 다를 것입니다. IE SSE4 INTRINSICS는 SSE4 활성화 CPU에서만 실행되며 확장자가 있는지 확인하는 것은 귀하에게 달려 있습니다.

좋은 기사가 있습니다 여기 SIMD 적용에 대해.

그러나 외부 라이브러리없이 SIMD 코드를 생성하는 컴파일러를 사용할 수 있습니다. vectorc 나는 개인적으로 그것을 사용한 적이 없지만 좋을 것입니다. 내가 아는 한 특수 라이브러리가 필요하지 않으며, SIMD에서 Benfit을 할 수있는 소스 코드의 비트를 발견하고 지정한 SSE 수준으로 컴파일됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top