Belirli bir ARM işlemcide NEON motorunun mevcut olup olmadığı nasıl belirlenir? Herhangi bir durum/bayrak kaydı bu amaçla sorgulanabilir?Kolda NEON'un varlığı nasıl kontrol edilir?
cevap
unixsmurf's answer, ayrıcalıklı bir çekirdeği olan bir işletim sistemi kullanıyorsanız elde edeceğiniz kadar iyi olduğuna inanıyorum. Genel amaçlı özellik tespiti için, ARM'nin bunu işletim sisteminden alması için bir gereklilik olduğunu ve bunu elde etmek için bir işletim sistemi API'si kullanmanız gerektiğini düşünüyor. Android NDK günü
(android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM) && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON)
ile#include <cpu-features.h>
kullanın. Not, bu 32 bit ARM içindir. ARM 64 bit'in farklı bayrakları vardır ama fikir aynıdır. sources/docs'a bakın.- Linux'ta, varsaile
#include <sys/auxv.h>
ve#include <asm/hwcap.h>
kullanın. - iOS'ta, dinamik bir arama olduğundan emin değilim. Yöntem, uygulamanızı NEON hedeflemeyi oluşturuyormuş gibi görünüyor, ardından uygulamanızın NEON gerektirecek şekilde işaretlendiğinden emin olun, böylece yalnızca onu destekleyen cihazlara yüklenir . Elbette, her şeyin derleme zamanında hazır olduğundan emin olmak için önceden tanımlanmış önişlemci bayrağı
__ARM_NEON__
'u kullanmalısınız. Android uygulamaları bir çok göreceksiniz Aslında
bazı başka RTOS kullanıyorsanız, Microsoft veya ... Bilmiyorum mu ne olursa olsun üzerinde
... hangi sadece ayrıştırma/proc/cpuinfo içinde android_getCpuFeatures() .... Heh uygulamak için sipariş. Ama yine de iyileşiyor gibi görünüyor ve en yeni sürümleri getauxval yöntemini kullanıyor.iOS 5 ve üstü tarafından desteklenen tüm iOS donanımları NEON'a sahiptir; NEON'un mevcut olduğunu varsayabilirsin, herhangi bir çeke gerek yok (ama eğer gerçekten istiyorsan 'sysctl' kullanarak dinamik olarak kontrol edebilirsin). (Android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON)! = 0) –
kontrol * getauxval (AT_HWCAP) & HWCAP_NEON, Aarch64 için çalışıyor, ancak Aarch32 değil. Kontrol etmen gereken başka tanımların olduğuna inanıyorum. – VMMF
sayesinde evet, ARM64 vb –
- 1. GPS sensörünün varlığı nasıl kontrol edilir?
- 2. Bir ad alanının varlığı nasıl kontrol edilir php
- 3. Android veri varlığı için bölge nasıl kontrol edilir?
- 4. Android'de kullanıcı varlığı nasıl tespit edilir?
- 5. Sistemde bir varsayılan kayıt cihazının varlığı nasıl tespit edilir?
- 6. Diziler dizisinde belirli bir dizinin varlığı nasıl kontrol edilir, salt değerleri ile karşılaştırılır?
- 7. XMPP sunucusu üzerinden özel kullanıcı çevrimiçi/çevrimdışı durumunun varlığı nasıl kontrol edilir
- 8. AVPlayer durumu nasıl kontrol edilir?
- 9. Yakınlık algılayıcısı nasıl kontrol edilir?
- 10. Ubuntu'da Apache2 nasıl kontrol edilir?
- 11. umbraco'da çerez nasıl kontrol edilir?
- 12. Hazır animasyon nasıl kontrol edilir?
- 13. Medya birimi nasıl kontrol edilir?
- 14. Swift'de launchOptions nasıl kontrol edilir?
- 15. PowerShell'de bir komut dosyası kapsamındaki değişkenin varlığı nasıl test edilir?
- 16. açık typeof == "undefined" sadece kendi varlığı için kontrol kontrol edin?
- 17. Dosya varlığı nasıl denetlenir
- 18. Bir dll'nin varlığı nasıl sağlanır
- 19. Perl'de çoklu desen eşleşmesi nasıl kontrol edilir
- 20. ram tüketimi nasıl kontrol edilir javascript
- 21. Hikaye panosunun durumu nasıl kontrol edilir?
- 22. Mücevherler güncellemeye hazır nasıl kontrol edilir?
- 23. Öğenin tıklama işleyicisi varsa nasıl kontrol edilir?
- 24. sql_safe_updates açık olup olmadığını nasıl kontrol edilir?
- 25. Dize Havuz İçeriği nasıl kontrol edilir?
- 26. Akışta bir Tarih nesnesi nasıl kontrol edilir?
- 27. Anaconda'nın mac sürümü nasıl kontrol edilir?
- 28. SQL satırının değeri sürekli nasıl kontrol edilir?
- 29. Elixir'de yapı alanının türü nasıl kontrol edilir?
- 30. Hizmetten çalınan ses düzeyi nasıl kontrol edilir?
Bu amaçla, o çekirdekte neyin desteklendiği ve neyin yetersiz olduğu hakkında bilgi vermek için bir dizi işlemcisi kaydı vardır. Bu kayıtların nerede yaşadığını görmek için bu veya benzer bir çekirdek için TRM'yi edinin. –
ARM işlemcilerin tasarlandığını düşünüyorum. Bu bilgi ve bu kayıtlar aslında ayrıcalıklıdır; Linux altında, bu nedenle, NEON veya Advanced SIMD bayrağını aramak için '/ proc/cpuinfo''ya bakmalısınız. Ayrıcalıklı kod için, bkz. ARMv7 Mimari Referans El Kitabı, Bölüm _B3.12.19 c1, İşbirlikçi Erişim Kontrol Kaydı (CPACR) _; Bu kayıtların 32'si istediğin şey. –
CPACR'nin Bit 31'i, NEON motorunu saptamak için doğrudan bir yol gibi görünmeyen, 1'e ayarlandığında NEON komutlarını devre dışı bırakır. – Thomson