0

이것은 숙제입니다.컴퓨터 아키텍처 : 속도 향상

문제 : 프로그램에는 20 %의 메모리 액세스, 50 %의 곱셈 및 나머지와 관련된 다른 함수에 대한 나머지가 있습니다. 전반적인 속도 향상이 1.2라면 메모리 액세스와 곱셈이 모두 향상되면 속도가 얼마나 빨라질 것인가?

Amdahl의 법칙을 사용하여 속도 향상을 찾고 있다면이 방법을 알고 있다고 생각합니다. 그러나이 문제에 접근하여 각자의 속도 향상을 찾는 방법을 잘 모르겠습니다. 같이. 그냥 메모리를 찾는 경우

, 나는 X에 대해 다음 방정식을 풀 것이라고 생각 액세스합니다

1.2 = 1/[(1 - 0.2) + 0.2/x] 

은 암달의 법칙에 0.2 + 0.5 = 0.7을 두 비율을 결합하여 사용하는 열쇠인가?

+3

"이것은 숙제입니다."축하합니다! – JakeGould

+0

예, 두 구성 요소가 동등하게 향상 되었기 때문에 기여 분율을 합산하여 단일 구성 요소로 처리 할 수 ​​있습니다. –

답변

1

현재 실행 시간이 100 초라고 가정합니다.

원하는 속도 향상은 6/5이므로 이전 시간의 새 시간은 5/6이어야하며 16.67 % 또는 16.67 초가 감소해야합니다. (그게 다 Amdahl의 법칙입니다!)

메모리 액세스에는 20 초, 곱셈에는 50 초, 다른 것들에는 30 초가 걸립니다.

"둘 다 똑같이 개선 된 경우"라는 질문은 모호합니다. 두 절대 값이 같은 절대 값으로 감소했음을 의미합니까? 각각 16.67의 절반 인 이거나 메모리에서 오는 16.67 초의 2/7과 곱셈에서 오는 5/7을 비례하여 축소한다는 의미입니까? ?

당신은 거기에서 가져 가세요!

BTW : 학자들이 성능 튜닝에 관해 이야기 할 때, 그들은 메모리 액세스와 수학 연산과 big-O에 관한 거의 모든 1 페이지 프로그램을 염두에 두는 경향이 있습니다. 실제 성능 튜닝은 매우 다릅니다. 소프트웨어가 과도하게 설계된 방법을 알아 내고 성능 진단 (프로파일 링과 같지만 더 좋음)을 사용하여 지방이 어디에 있는지를 알아 내고 여러 번 반복하여 잘라냅니다. Example.