주어진 ARM 프로세서에 NEON 엔진이 있는지 여부를 확인하는 방법은 무엇입니까? 어떤 상태/플래그 레지스터도 그런 목적으로 쿼리 될 수 있습니까?NEON on arm의 존재를 확인하는 방법은 무엇입니까?
답변
unixsmurf's answer은 권한있는 커널이있는 OS를 사용하는 경우에 얻을 수있는 것만 큼 훌륭하다고 생각합니다. 범용 기능 감지를 위해서는 ARM이 OS에서이 기능을 얻으려는 요구가 있었으므로 OS API를 사용해야합니다.
- Android NDK의 경우
#include <cpu-features.h>
과(android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM) && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON)
을 사용하십시오. 32 비트 ARM 용입니다. ARM 64 비트는 플래그가 다르지만 아이디어는 같습니다. sources/docs을 참조하십시오. - Linux의 경우 사용 가능한 경우
#include <sys/auxv.h>
및#include <asm/hwcap.h>
을getauxval(AT_HWCAP) & HWCAP_NEON
과 함께 사용하십시오. - iOS에서 동적 호출이 있는지 확실하지 않습니다. 방법론은 NEON을 타겟팅하는 앱을 만든 다음 NEON을 요구하도록 앱을 플래그 지정했는지 확인하는 방법으로 보이며 지원하는 기기에만 설치됩니다. . 물론 미리 정의 된 전처리 기 플래그
__ARM_NEON__
을 사용하여 컴파일시 모든 것이 순서대로 이루어 지도록해야합니다. 당신이 안드로이드 구현을 많이 볼 수 있습니다 사실
당신이 다른 RTOS를 사용하는 경우 Microsoft가 나 ... 나도 몰라 않는 무엇에
... 이는 단지 구문 분석은/proc/cpuinfo의에서 android_getCpuFeatures()를 구현하기 위해서 .... Heh. 그러나 여전히 개선되고 있으며 최신 버전은 getauxval 메서드를 사용합니다.iOS 5 이상에서 지원되는 모든 iOS 하드웨어에는 NEON이 있습니다. NEON이 있다고 가정하면 아무런 검사가 필요 없습니다 (그러나 정말로 원한다면'sysctl'를 사용하여 동적으로 검사 할 수 있습니다). (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && (android_getCpuFeatures() ANDROID_CPU_ARM_FEATURE_NEON)! = 0) –
는 을 확인 *'getauxval (AT_HWCAP) & HWCAP_NEON'는 Aarch64에서는 작동하지만 Aarch32에서는 작동하지 않습니다. 확인해야 할 다른 정의가 있다고 생각합니다. – VMMF
감사합니다, 그래, 내가 ARM64 등 –
- 1. 평균 작동 ARM의 NEON
- 2. 클래스 및 함수 존재를 확인하는 방법은 무엇입니까?
- 3. 웹 페이지에서 요소의 존재를 확인하는 방법은 무엇입니까?
- 4. 자바 스크립트 : URL의 존재를 확인하는 방법은 무엇입니까?
- 5. ARM의 LWJGL (Minecraft on BBB)
- 6. Django 모델의 존재를 확인하는 협약?
- 7. Windows에서 그룹의 존재를 확인하는 방법
- 8. 하나 이상의 중첩 된 객체의 존재를 확인하는 방법은 무엇입니까?
- 9. 다른 크롬 (ium) 확장 프로그램의 존재를 확인하는 방법은 무엇입니까?
- 10. 정수 컬렉션으로 존재를 확인하는 가장 좋은 방법은 무엇입니까?
- 11. 모든 테이블의 존재를 확인하는 방법은 무엇입니까? in postgresql
- 12. mongodb doc의 존재를 확인하는 가장 빠른 방법은 무엇입니까?
- 13. 안드로이드에서 GPU 존재를 확인하는 가장 쉬운 방법은 무엇입니까?
- 14. MySQL에서 행 존재를 확인하는 가장 좋은 방법은 무엇입니까
- 15. e4x : 속성의 존재를 확인하는 가장 좋은 방법은 무엇입니까?
- 16. 여러 개의 사이드 바 존재를 확인하는 방법은 무엇입니까?
- 17. 파이썬의 숫자 집합에서 숫자의 존재를 확인하는 가장 좋은 방법은 무엇입니까
- 18. powershell - 한 파일의 존재를 확인하는 방법
- 19. ListModel에서 개체 존재를 확인하는 방법
- 20. 파슬리를 사용하여 존재를 확인하는 방법?
- 21. eclipse CDT에서 neon intrinsic을 사용하는 방법은 무엇입니까?
- 22. Oracle에서 행의 존재를 확인하는 가장 빠른 쿼리는 무엇입니까?
- 23. ARM의 오버레이
- 24. 단일 쿼리로 여러 ID의 존재를 확인하는 방법
- 25. XSLT를 사용하여 XML 특성 존재를 확인하는 방법
- 26. JPA EntityListeners에서 인터페이스의 존재를 확인하는 방법
- 27. mysql 데이터베이스에서 키 목록의 존재를 확인하는 방법
- 28. 특정 필드가있는 모델의 존재를 확인하는 방법
- 29. 셀에있는 특정 키워드의 존재를 확인하는 수식
- 30. 레일에있는 자동 완성에서 사용자의 존재를 확인하는 방법
코 프로세서 레지스터에는 그 코어에서 지원되는 항목과 isnt가 무엇인지에 대한 자세한 정보를 제공하는 목적으로이 코 프로세서 레지스터가 있습니다. 그 또는 유사한 코어에 대해 TRM을 가져와이 레지스터가 어디에 있는지 확인하십시오. –
나는 ARM 프로세서가 s.t. 이 정보와 레지스터는 실제로 권한이 부여됩니다. 따라서 리눅스에서는'/ proc/cpuinfo'를보고 NEON 또는 Advanced SIMD 플래그를 찾아야합니다. 권한있는 코드에 대해서는 ARMv7 아키텍처 참조 설명서, 섹션 _B3.12.19 c1, CPACR (Coprocessor Access Control Register) _; 그 레지스터의 비트 31이 당신이 원하는 것입니다. –
CPACR의 비트 31은 NEON 엔진을 직접 감지 할 수없는 것처럼 보이는 1로 설정하면 NEON 명령어가 취소되는 것을 비활성화합니다. – Thomson