2016-07-18 7 views
0

네온 인라인은 레지스터 할당을 컴파일러에 맡겨서 신경 쓰지 않아도됩니다. 그러나 멀티 코어 프로세서 (내 프로세서는 zynq이고 두 개의 암 - 대뇌 피질 -A9 코어, 두 개의 네온 유닛이 있습니다) 컴파일러는 모든 네온 장치를 효율적으로 사용하는 방법을 알고 있습니까? 아니면 컴파일러가 모든 네온 장치를 사용할 수 있도록해야합니까?네온 내장 함수가있는 멀티 코어 프로세서에서 모든 네온 장치를 효율적으로 사용하는 방법

멀티 코어 프로세서에서 모든 네온 장치를 사용할 수 있다면 성능이 향상 될 수 있다고 생각합니다. 누구나 아이디어가 있습니까? 감사!

+0

질문은 실제로 이해가되지 않습니다. NEON 장치는 여전히 CPU 코어의 일부입니다. "두 코어 모두에서 실행되는 멀티 스레드 코드를 작성하려면 어떻게해야합니까?"라는 질문을 효과적으로하지 않는 한, "너무 광범위하게"다루어 질 구체적인 내용은 없습니다. – Notlikethat

+0

고마워! 내 실수 야. 우리가 사용하는 NEON 유닛이 우리가 사용하는 CPU 코어에 의해 결정된 것입니까? – maofu

+0

예, 파이프 라인의 나머지 부분 (Cortex-A8의 "별로 좋지 않음"에서 일부 현재 코어의 "분리 할 수없는"까지)과 얼마나 긴밀하게 통합 되었는가에 관계없이 정수 ALU와 마찬가지로 CPU 코어의 많은 부분을 차지합니다 또는 다른 블록. 나는 "컴파일러가 모든 레지스터 파일/명령 디코더 /로드 저장 유닛을 사용할 수 있는지 확인하기 위해해야 ​​할 일이 있습니까?"라는 질문에 어리 석음이 보이기를 바랍니다. - VFP 전용 또는 전체 NEON 벡터 파이프 라인인지 여부에 관계없이 FPU는 다릅니다. – Notlikethat

답변

0

NEON은 쉐이더 코어의 기능 단위이며 x86의 SSE 뿐이며 "일반"정수 또는 부동 소수점 명령어와 비슷하게 동작합니다.

컴파일러는 단일 코어 내의 유닛을 자동으로 처리 할 수 ​​있지만 여러 코어에서 여러 NEON 유닛을 사용하려면 명시 적 응용 프로그램 논리를 통해 다중 스레드로 작업을 분할해야합니다.

관련 문제