This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62A7:cl7x 编译时间

Guru**** 2468610 points
Other Parts Discussed in Thread: AM62A7

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468084/am62a7-cl7x-compile-times

器件型号:AM62A7

工具与软件:

此问题并不特定于 AM62A7;这只是我在遇到问题时所使用的 SDK。

我们主要是一个基于 Mac 的商店,因此我总是尝试在我的主要开发机器(目前是 M4 Mac)上运行我的工具。 由于 TI SDK 需要安装在 Windows 或 Linux 上、因此我使用 VM。 我设置开发环境的第一次尝试是安装具有 x86_64仿真的 ARM AArch64 Ubuntu VM (基于 Mac Rosetta 仿真)、然后安装 TI Linux 和 MCU_PLUS SDK 以及相关工具。

一切似乎都在正常运行、并且 llvm 和 gcc 编译器运行时性能良好。 也就是说、cl7x 编译器在此环境下似乎极慢。

安装 SDK 后、我会运行 mcu_plus_sdk_am62ax_10_01_00_33目录中的顶层 make。

所有内容看起来都是编译的、但我发现 ti-cgt-c7000_4.1.0.sts/bin/cl7x 编译速度慢得惊人。

使用 cl7x 编译器编译单个小型 C++文件需要多分钟(似乎需要大于10分钟、但肯定需要超过2-3分钟)。 所有时间都花在 opt7x 上、这里它使用100% CPU 内核、并运行许多分钟来编译单个文件。

我不清楚这是否是预期的、或者这是否是我正在运行的虚拟机环境中的工件。

如果它是预期的,那么它将是一个生活的东西,但如果它不是,那么我将站起来一个更标准的安装,以处理这一前进。

在我的主要开发机器上使用构建环境是我的最佳选择、但如果编译小项目需要数天时间、尤其是因为我们有数百个源文件需要通过 cl7x 编译器运行、可能会随着调优的完成而多次运行。

如果对此有任何反馈意见、将不胜感激。 此外还有任何时间表或计划让 AArch64编译器版本,因为这对两个主机系统都很有用,以及在部件本身上运行编译的能力。 我认为我们有可用于 C6x 编译器的 ARM 版本。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    除此之外、在 Windows 11 VM 上运行 SDK、cl7x 编译时间似乎快约100倍。 因此、这似乎是 Linux 仿真的问题、而不是编译器的问题。  

    正常运行。 Linux SDK 中的任何内容是否需要运行 cl7x 编译器、或者所有 DSP 固件开发都可以独立于构建 Linux 和相关图像文件来完成(例如、固件闪存可以通过 Windows 构建并可用于 Linux SDK 吗?)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、在 Windows 11虚拟机上运行 SDK 时、cl7x 编译时间似乎快约100倍。 因此、这似乎是 Linux 仿真的问题、而不是编译器的问题。  [报价]

    有趣的是,我很好奇你是如何在苹果硅 Mac 上设置这些 x86虚拟机的? 我试过自己,不能用一个好的方式来工作,但我没有投入大量的精力在它。 我尝试的实际上是设置 Ubuntu AArch64虚拟机、然后 在该虚拟机中运行各种 SDK 二进制文件、但使用 qemu 仿真层;基本上根本不使用任何 Apple Rosetta 技术。 但您所做的是将整个 VM 设置为 x86_64。

    在 Windows 下运行没问题。 Linux SDK 中的任何操作都需要运行 cl7x 编译器、或者所有 DSP 固件开发都可以独立于构建 Linux 和相关图像文件来完成(例如、固件闪存能否仅通过 Windows 构建并可用于 Linux SDK

    该编译器应该仅用于 DSP FW 构建、而不需要其他编译器。 是的、获取输出文件并将其移动到另一个环境以完成最终映像构建过程不会出现问题。

    此致、Andreas

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 macOS 13中,Apple 通过其管理程序添加了对 Rosetta2运行时网关的支持。 Parallels 在 Parallels19中增加了对它的支持(我认为)。 有一个预装的 VM 可以从 Parallels 下载并安装,称为"Ubuntu 24.04(与罗塞塔)",它向 Ubuntu 安装添加挂钩,以允许它运行 x86_64二进制文件。 除了 cl7x_opt 过程之外、似乎可以正常工作。  

    对于 Windows 来说,在 Parallels 中使用 Win11 ARM 的 x86二进制文件使用 Microsoft 的罗塞塔等效文件,而对于当前版本的 Win11,这似乎是相当强大的。  

    回过头来探讨 TI 的具体内容、尤其是由于 TI 拥有所有这些出色的 ARM 处理器、我会选择在正常构建流程中构建这些工具的 ARM64版本、以便(a)它们可以在 TI 器件上自托管、 并且(b)它们可以托管在 ARM Linux 发行版上-这将有助于在装有 Apple Silicon 的 Mac 上托管开发环境、并且似乎越来越普遍可用的非 Mac 系统将继续运行 AArch64。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以从 Parallels 下载并安装一个预装 VM、名为"UBUNTU 24.04 (with Rosetta)"[/报价]

    "我不知道你在说什么。" 我自己是 VMware Fusion 用户(我更喜欢非订阅软件的一个主要原因)、而与您所描述的类似、该虚拟机似乎并不存在。 不管怎样、我很高兴知道这个选项。

    作为常规构建流程的一部分、我将投票构建这些工具的 ARM64版本

    是的、这会不时出现。 稍作总结我可以说、实际上正在向更多 MCU 类型产品过渡、以扩展/启用本机 ARM64 (和 Mac)主机支持、您可以看到我们的 ARM Clang 编译器已在支持主机的版本(https://www.ti.com/tool/download/ARM64/4.0.1.LTS)中提供、其他(ARM-CGT-CLANG 编译器)可能会在一年中继续使用。 似乎还没有针对 C7x 的任何具体计划、但这可能只是一个时间问题。

    它们可在 TI 器件上自行托管、

    这实际上是一个值得考虑的要点、让我把它转达给团队。 目前已提供"自托管调试"(通过 OpenOCD)支持、您可以在 AM6x 等给定 SoC 上从 ARM64内核调试 MCU 内核。 虽然用例不是很常见、但我认为这是一项很棒的技术。

    此致、Andreas

    [/quote]