연산 속도

프로그래밍 일반에 관한 포럼입니다.

Moderator: 류광

Locked
큐비
Posts: 65
Joined: 2004-05-30 01:50
Location: jaram
Contact:

Post by 큐비 »

비회원 wrote:
큐비 wrote:거의 모든 연산은..

동시에 병렬로 (한 코어 안에서) 처리될 수 있고

미리 처리될 수도 있습니다

요즘에는 한 코어에서 연산할때 사용하고 남는 파이프라인을 활용한 연산도 한다더군요

특히 연산 자체의 문제가 아닌 데이터의 문제가 될수도 있구요.. 이를테면 캐쉬문제죠

두가지의 복합적인 문제일 수도 있습니다. 연산에 따라 캐시 hit rate 가 달라지니..

결론은, 실제 코드를 실행중일때는 한 연산에 대한 절대적인 속도 측정은 매우 힘들며

(아주 특수한 분야를 제외하고는) 측정을 할 필요도 없다는 거죠

오류가 많은 발언입니다.

"거의 모든 연산이 동시에 병렬로 처리될 수 있고" => 사실이 아닙니다.

보통 이론적으로 얻을 수 있는 싱글스레드 내에서 동시에 처리 가능한 명령어의
수는 4~5개에 불과합니다. 그러니까 superscalar 구조에서 파이프라인 차선이 3~4개
정도가 있는 것이지요.

그런데 실제로는 명령어들 사이에 dependency가 많아서 이것 조차도 나오지 않습니다.

완전히 독립된 스레드에서 명령어를 가져와서 실행하면 (=하이퍼스레딩) 모를까
싱글 스레드에서 명령어를 뽑아와서 최대한으로 병렬로 처리하는 것은 제약이 많습니다.

말씀하신대로만 되었다면.. 이미 좋은 세상에서 살고 있었을 것입니다. :)
제 의도가 제대로 전달되지 않아서 오해가 생긴 듯 하군요. 그걸 말하려던게 아니었는데.

'거의 모든 연산이 동시에 병렬로 처리될 수 있고' => '거의 모든 연산은 병렬로 처리될 가능성이 존재하고'

이걸로 정정하는걸로 하겠습니다
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

비회원 wrote:
큐비 wrote:거의 모든 연산은..

동시에 병렬로 (한 코어 안에서) 처리될 수 있고

미리 처리될 수도 있습니다

요즘에는 한 코어에서 연산할때 사용하고 남는 파이프라인을 활용한 연산도 한다더군요

특히 연산 자체의 문제가 아닌 데이터의 문제가 될수도 있구요.. 이를테면 캐쉬문제죠

두가지의 복합적인 문제일 수도 있습니다. 연산에 따라 캐시 hit rate 가 달라지니..

결론은, 실제 코드를 실행중일때는 한 연산에 대한 절대적인 속도 측정은 매우 힘들며

(아주 특수한 분야를 제외하고는) 측정을 할 필요도 없다는 거죠

오류가 많은 발언입니다.

"거의 모든 연산이 동시에 병렬로 처리될 수 있고" => 사실이 아닙니다.

보통 이론적으로 얻을 수 있는 싱글스레드 내에서 동시에 처리 가능한 명령어의
수는 4~5개에 불과합니다. 그러니까 superscalar 구조에서 파이프라인 차선이 3~4개
정도가 있는 것이지요.

그런데 실제로는 명령어들 사이에 dependency가 많아서 이것 조차도 나오지 않습니다.

완전히 독립된 스레드에서 명령어를 가져와서 실행하면 (=하이퍼스레딩) 모를까
싱글 스레드에서 명령어를 뽑아와서 최대한으로 병렬로 처리하는 것은 제약이 많습니다.

말씀하신대로만 되었다면.. 이미 좋은 세상에서 살고 있었을 것입니다. :)



관련있는 명령어들이 동시에 처리될 가능성이 있는것은 사실이고,

중요한 논지는, '전체 실행타임은 연산에 소모되는 시간 뿐만 아니라 여러 복합적인 요인이 작용하니 변수가 많아 정답과 같은 측정이 어렵다. 대신, 복합적인 요인을 모두 고려하여 전체적인 성능을 측정하는 것은 가능하다.'가 아닐까 싶습니다.

그래서 프로파일러가 사용되고, 여러가지 소스 분석툴들이 나오는 것 아니겠습니까?


결론은 [문제를 파악하려면 나무를 보지 말고 숲을 바라보라] 가 맞는 것 같습니다.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
Locked