2016-08-04 4 views
1

인텔 64 비트 CPU는 큰 주소 공간 (> 4GB)을 처리 할 수 ​​있으므로 대규모 시뮬레이션에 유용합니다. Interesting architectural hardware advantages: :64 비트 이산 이벤트 시뮬레이션의 이점

  • 16 범용 대신 8
  • 추가 SSE의 레지스터는 레지스터
  • 없음의 실행 (NX) 버퍼 오버런 공격

BACKGROUND에게

역사적 방지 비트 32 비트 IA (Intel Architecture) 시스템에서 시뮬레이션이 수행되었습니다. 64 비트 CPU로 시뮬레이션 시간을 줄일 수있는 기회가 있다면 궁금합니다. 64 비트 기능을 활용하려면 소프트웨어를 다시 컴파일해야합니다. 이러한 유형의 시뮬레이션은 MAC (곱셈 및 누적)이나 부동 소수점 계산을 사용하지 않아도 이익을 얻지 못합니다.

질문 말했다되고 그건

(32-BIT 알고리즘 계산 ​​집약적 및 긴) 시뮬레이션을 가속화 할 32 비트 명령어 세트를 통해 상당한 이점을 제공하는 인텔 64 비트 명령어 또는 능력이있다?

시뮬레이션을 구현 한 경험이 있고 32 비트 CPU에서 64 비트 CPU로 전환 한 경우 관련 경험이 중요합니다. 커뮤니티에서 얻은 통찰력있는 응답을 기대합니다.

답변

1

내가 생각할 수있는 가장 직접적인 계산상의 이점은일 뿐이지 만 x86_64와는 느슨하게 관련되어 있지만 CPU 세대 관련 문제는 더 많습니다. 우리 회사에서는 항공기 (전기, 유압 장치, 항공 전자 공학 소프트웨어 및 모든 것을 포함)를 시뮬레이트하는 고도로 복잡한 이산 사건 시뮬레이션을 여러 개 개발했습니다. 그들은 모두 x86_64로 빌드되거나 x86_64로 포팅됩니다. 그 이유는 메모리 어드레싱에 주로 기인하며, 더 큰 캐시와 더 넓은 알고리즘 선택 (예 : 데이터 중심 디자인, 동시성)을 가능하게하며, 그래픽 콘텐츠 또한 오늘날 거대한 경향이 있습니다. 그러나 AVX와 같은 x86_64 명령어 자체에 대한 최적화는 컴파일러에게 맡겨져 있습니다. 필자는 실제로 어셈블러에서 작성된 코드 나 컴파일러 내장 함수를 사용하여 실제로 특정 x86_64 명령어를 명시 적으로 참조하는 것을 보지 못했습니다. 특히 데이터가해야 할 수도 있습니다 동시성에 관한 알고리즘의

  • 넓은 선택 :

    내 경험을 바탕으로, 요약, x86_64의 CPU는 종종 CPU 처리에 찬성 메모리 소비를 희생 특정 최적화를 허용

  • 중간 결과 또는 다른 처리 출력 재 계산을 피하거나
  • AVX 명령어는 도움이 될 수 시간 또는 상태와 관련된 간섭에 대해 최적화하기 위해 메모리에 더 쉽게 캐시 될 수
  • 점유 메모리의 비용으로 병렬 처리를 선호하는 방식으로 뻗어 vectoriz 컴파일러 MMX/SSE보다 e 코드가 많습니다.