Koz*_*uch 6 arm cpu-architecture backwards-compatibility binary-compatibility armv8
我看到 ARMv8 只是 ARMv7 架构的扩展,所有在 ARMv7 上编译的代码都应该在 ARMv8 上运行。我对 ARMv8 到 ARMv7 的向后兼容性感兴趣。在 ARMv8 上编译的代码能否在 ARMv7 上运行?
我有一个特别感兴趣的案例:我想在Nvidia Jetson TK1(NVIDIA Cortex-A15 CPU)上运行为OnePlus 3 智能手机(Qualcomm MSM8996 Snapdragon 820 CPU)编译的comma.ai 的 Openpilot 视觉二进制文件。有远见的人会在 Jetson 上运行吗?
编辑:可能有比 CPU 兼容性更多的问题,因为 Visiond 可能在该手机上大量使用 GPU。可能取决于他们是否使用一些标准的并行化方式(OpenCL、NEON 等)或者是否有一些用于 Snapdragons GPU 的自定义代码。即使使用 OpenCL,在不同硬件上兼容的可能性也可能很低。
我相信aarch32用户区与ARMv7完全或非常高度向后兼容,即为ARMv7编译的用户区程序应该只能在AArch32中工作,但我在ARM手册中找不到精确的引用。
aarch32 确实在 ARMv7 上添加了新指令,但是,其中大多数似乎是 ARMv8 添加的功能,设计者决定在 aarch32 上公开。因此,aarch32 不向前兼容 ARMv7,即为 aarch32 编译的程序可能无法在 ARMv7 上运行。
我不确定系统土地。另请参阅:ARMv8 AArch32 模式是否向后兼容armv4、armv5 或armv6?