2017-03-21 15 views
0

what it takes to support fast vectorized linear algebra computations for matrices and vectors of arbitrary size을 이해하려고합니다. 내가 x86 프로세서 아키텍처에 대해 알고있는 바에 따르면, 그들은 special registers of limited size을 포함하고있다. 이러한 레지스터는 부동 소수점 숫자가로드되고 작업이 레지스터를 통해 브로드 캐스팅되도록합니다. 제한된 크기를 어떻게 효율적으로 활용할 수 있습니까?OpenBLAS는 임의의 크기의 벡터 및 행렬을 어떻게 지원합니까?

OpenBLAS 소스 코드를 알아 내고 싶었지만 dev docs을 보았지만 gemv과 같은 간단한 작업을위한 일반적인 흐름을 파악할 수 없었습니다.

답변

0

OpenBLAS는 이러한 작업을 효율적으로 수행하기 위해 커널을 사용합니다. 이 문맥에서 "커널"은 선형 대수 연산을 위해 특별히 작성된 어셈블리 코드입니다. 예를 들어, gemv 작업의 경우 x86-64ARM64의 커널을 참조하십시오.