고밀도 선형 대수의 런타임 예측


9

특정 라이브러리를 사용하여 특정 아키텍처에서 밀도가 높은 선형 대수 연산의 런타임을 예측하고 싶습니다. 함수와 비슷한 모델을 배우고 싶습니다

에프영형::입력 크기실행 시간

행렬 곱하기, 요소 별 더하기, 삼각 솔버 등과 같은 연산에 사용됩니다.

캐시에 편안하게 맞는 문제 크기를 넘어 서면 작업의 규칙 성으로 인해 이러한 런타임이 대부분 예측 가능하다고 생각합니다.

질문 :

  1. 이 가정이 현실적입니까? 런타임 기능이 거의 결정론 적인가?
  2. 이 함수가 입력 크기에서 다항식이라고 가정 할 수 있습니까? (즉, 밀도가 높은 행렬이 다음과 같이 보일 것으로 예상합니다.α×케이×미디엄 ...에 대한 케이×케이미디엄α 스칼라 계수)
  3. 이 어딘가에 이미 존재하는 작업이 있습니까?
  4. 내 현재 계획은 최소 제곱 회귀 분석을 수행하는 것입니다. 1정규화 기. 다른 제안?

편집 : 명확하게 FLOP 또는 다른 일반적인 성능 메트릭이 아닌 런타임을 찾고 있습니다. 하나의 특정 아키텍처로 나 자신을 제한하고 싶습니다.

답변:


10

나는 최근에 정확히이 주제에 대해 작업하고 있습니다. http://arxiv.org/abs/1209.2364 문서를 살펴보십시오 .

선형 대수 루틴의 런타임 예측에 관심이있는 이유는 무엇입니까? 특정 목적으로 모델을 사용 하시겠습니까?


링크 주셔서 감사합니다. 내가 볼게 나는 당신이 같은 이유를 의심하기 때문에 이것에 관심이 있습니다. 행렬식에 대한 자동화 된 알고리즘 선택 및 스케줄링. 이 매우 규칙적이고 예측 가능한 영역에서 불가능한 많은 문제가 발생할 수 있습니다.
MRocklin

6

기존 작업이 많이 있습니다. 대부분의 선형 대수 라이브러리 개발자는 런타임으로 변환 할 수있는 부동 소수점 성능 측면에서 성능 결과를 게시합니다.

: 예를 들어, "DGEMM 성능"에 대한 인터넷 검색, 다음 산출 http://math-atlas.sourceforge.net/timing/3_5_10/index.html을 .

일반적으로 답변이 부드럽 지 않을 것으로 예상 할 수 있습니다. 특정 문제 크기 (캐시 크기와 관련) 부근에서 점프 또는 급상승이 발생합니다. 또한 속도의 정체가 예상되므로 광범위한 문제 크기에 대해 선형 영역이 필요합니다. 다항식 피팅이 도움이 될 것으로 기대하지는 않습니다.

광범위한 벤치마킹 노력이 주어지면 결과를 도표화하고 필요에 따라 보간하는 것이 더 쉬울 수 있습니다. 당신의 목표는 무엇입니까?


1
플롭 / 스 고원 DGEMM플랍이 문제의 크기에 따라 증가하고있는 비율이기 때문입니다. 나는 단일 다항식을 맞추는 것보다 조각 단위로 적합하는 것이 훨씬 낫다는 데 동의합니다.
Jed Brown

플롭을 런타임으로 변환하는 것은 경험상 어렵습니다. 필자는 실제로 런타임에만 관심이 있습니다. 정적 스케줄링의 타당성을 테스트하고 있습니다.
MRocklin 2016 년

내 경험에 따르면 스파이크 / 고원은 작은 문제 크기에서만 발생합니다. 캐시를 벗어나면 상황이 매우 부드럽습니다. 조각 함수를 추가하면 적합도가 향상 될 것입니다.
MRocklin 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.