정보

System.Numerics.Vectors에 대하여

.NET Framework 4.6에 대한 큰 변화 중 하나는 SIMD 명령어를 지원한다는 점이다. 비록 제한적이지만 System.Numerics.Vectors 라이브러리를 사용하여 벡터나 행렬을 사용하면 SIMD 명령어로 동작한다는 얘기였다.

이를 철썩같이 믿고 있었는데 System.Numerics.Vectors의 실제 구현물을 봤다. JitIntrinsicAttribute를 메서드 등에 적용하면 .NET Framework 4.6 런타임에서는 SIMD로, 그게 아니면 SISD로 동작하는 구조. JinIntrinsicAttribute에는 내용이 없다. 여기까지는 문제가 없다. 하위 호환도 맞추고 있고 이를 그대로 다른 플랫폼에 포팅하기도 쉽다.

문제는 행렬에는 JitIntrinsic이 적용된 게 없다. 행렬 계산에 있어서, 특히나 행렬의 곱셈에 있어서 SIMD를 적용하는 것은 계산 속도의 향상을 할 수 있는 마지막 보루인 셈인데 이쪽에 적용된게 없다니…

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중