인텔 코어 2 듀오에는 3 개의 SSE 유닛이있는 것으로 알려져 있습니다. 이들 3 개 개의 유닛은 3 개 SSE 명령어는 paralelly 실행할 수 있도록 1 예 : 또한 (빼기) 용, 다른 하나의 경우 :인텔 코어 2 듀오 용 3 SSE 유닛에 적합한 mullps/addps 명령
rA0 = mullps(rB0, rC0); \
rA1 = mullps(rB1, rC1); > All 3 take 1 cycle to be scheduled (* - see Remarks).
rA2 = mullps(rB2, rC2); /
는 매 SSE 유닛은 2 개의 모듈로 구성하는 것이 또한 알려져 곱셈 (나눗셈). 후자는 예를 들어, 평행 (2) mullps - addps 명령 시퀀스를 실행할 수 있습니다 :
rA0 = mullps(rB0, rC0); \
> All 2 take 1 cycle to be scheduled for 1 SSE module.
rA1 = addps(rB1, rC1);/
질문이 followig입니다 : 조각이 취할 다음이 코드의 각을 예약 할 방법을 많이주기?
rA0 = mullps(rB0, rC0); \
rA1 = mullps(rB1, rC1); |
rA2 = mullps(rB2, rC2); \ Do all 6 execute in one step? (See paragraph (2))
rA3 = addps(rB3, rC3); /
rA4 = addps(rB4, rC4); |
rA5 = addps(rB5, rC5); /
코드 목록 B : I는 A 또는 B를 선호한다 명령 순서의
rA0 = mullps(rB0, rC0); \
rA1 = addps(rB1, rC1); |
rA2 = mullps(rB2, rC2); \ Do all 6 execute in one step? (See paragraph (1))
rA3 = addps(rB3, rC3); /
rA4 = mullps(rB4, rC4); |
rA5 = addps(rB5, rC5); /
이 방법 목록
코드? 구체적
:
- 3 개 SSE 승산 유닛 (1) 내지 (3) mulps를 배포하는 것이 가능하고, 동시에 (2) 전체 결과 각 SSE 부가 단위 addps를 배포 일정주기 당 6 가지 지침?
- 먼저 N 개의 뮬 풀을 실행하고 N 개의 addps를 실행하면 어떤 N이 최적입니까?
비고 '예정'내 말은 처리 속도에 의해
- .
와우 와우 ... 여기. 코어 2 프로세서에는 3 개의 SSE 유닛이 있습니다. 그러나 그들은 다른 일을합니다. 1은 더하기/빼기입니다. 1은 곱셈이고, 1은 셔플입니다. 두 예제 모두에서 3 회 이상의 처리량을 얻을 수 없습니다. 그리고 당신은 [OOE] (http://en.wikipedia.org/wiki/Out-of-order_execution)에 관해 조금이라도 읽고 싶을 것입니다. 따라서 명령이 너무 중요하지 않아야합니다. – Mysticial
두 작업을 모두 할 수있는 장치를 가지고 있더라도 하나의 포트로 계속 연결됩니다. – Leeor
허 ... 설명해 주셔서 감사합니다. 기사를 읽을 것입니다. –