Tôi đang sử dụng bộ xử lý Cortex-A8 và tôi không hiểu cách sử dụng cờ -mfpu
.ARM Cortex-A8: Cách sử dụng cả NEON và vfpv3
Trên Cortex-A8, cả hai đều là vfpv3 và neon đồng bộ xử lý. Trước đây tôi đã không biết làm thế nào để sử dụng neon vì vậy tôi chỉ sử dụng
gcc -marm -mfloat-abi=softfp -mfpu=vfpv3
Bây giờ tôi đã hiểu thế nào xử lý SIMD chạy và tôi đã viết một số mã sử dụng intrinsics NEON. Để sử dụng neon đồng xử lý hiện nay cờ -mfpu của tôi có thay đổi để -mfpu=neon
, vì vậy dòng lệnh trình biên dịch của tôi trông như thế này
gcc -marm -mfloat-abi=softfp -mfpu=neon
Bây giờ, điều này có nghĩa là tôi vfpv3
không được sử dụng nữa? Tôi có nhiều mã không sử dụng NEON, làm những phần đó không sử dụng số vfpv3
.
Nếu cả neon và vfpv3 vẫn được sử dụng thì tôi không có vấn đề gì, nhưng nếu chỉ một trong số chúng được sử dụng thì tôi có thể sử dụng cả hai như thế nào?
Igor Tôi chỉ có các giá trị dấu phẩy động chính xác duy nhất. Thật vậy, tôi thấy rất nhiều f-hướng dẫn (fadds, fsitos), vì vậy tôi nghĩ rằng các hướng dẫn vfp vẫn đang được phát hành bởi trình biên dịch. – HaggarTheHorrible
Câu hỏi không liên quan, bạn có biết bộ xử lý dual-issue có ý nghĩa gì không? Cortex-A8 là bộ xử lý vấn đề kép có nghĩa là gì? Bạn có thể chỉ cho tôi bất kỳ liên kết nào không? Tìm kiếm của tôi không hiệu quả lắm. – HaggarTheHorrible
Vikram, Coretex A8 là một vấn đề kép trong bộ xử lý đơn đặt hàng. Điều đó có nghĩa (khác nhau) rằng nó có thể thực hiện một số hoặc tất cả 1) giải mã và enqueue để thực hiện out-of-order hai lệnh mỗi đồng hồ, 2) thực thi hai lệnh xếp hàng như vậy trên mỗi đồng hồ và/hoặc 3). kết quả mỗi đồng hồ. Nói cách khác, trong điều kiện tốt nhất nó có thể thực hiện hai lệnh trên mỗi đồng hồ, duy trì. Điều kiện tốt nhất chỉ xảy ra khi không có bộ nhớ cache, lỗi chi tiết, vv .. –