Skip to content

Add ARM wheels build in CI#4

Merged
SigureMo merged 15 commits intopaddlefrom
paddle_arm
Apr 11, 2026
Merged

Add ARM wheels build in CI#4
SigureMo merged 15 commits intopaddlefrom
paddle_arm

Conversation

@youge325
Copy link
Copy Markdown

No description provided.

Copilot AI review requested due to automatic review settings April 10, 2026 07:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a dedicated GitHub Actions workflow to build, test, and publish ARM64 (aarch64) paddlecodec wheels, complementing the existing x86_64 Paddle wheel pipeline.

Changes:

  • Introduces an ARM wheel build job using a manylinux aarch64 container and a Python version matrix.
  • Adds an ARM wheel test matrix covering multiple FFmpeg versions.
  • Publishes ARM artifacts to both PyPI and GitHub Releases on tag pushes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@youge325
Copy link
Copy Markdown
Author

好慢,是arm机器的性能不够吗

@youge325
Copy link
Copy Markdown
Author

是网络有点问题,改了一下测试文件

@youge325
Copy link
Copy Markdown
Author

目前只能进行单一版本的 ffmpeg 编译,后面看看怎么添加不同版本 ffmpeg 进行编译

@youge325
Copy link
Copy Markdown
Author

不确定是什么问题,CI 看不到日志堆栈,需要本地机器测试

- name: Publish ARM release distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

publish-release-arm:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

话说这个方便和另一个合并么?一方面是减少一些相似代码,另一方面我不确定 OIDC 发布是否可以两条流水线发布

mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"

LGPL-Linux-aarch64:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里倒是可以不用改,我原来也想自己构建,后来发现直接用上游构建好的就可以了

import httpx
import numpy as np

DEFAULT_TEST_VIDEO = "https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_video/example_video.mp4"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

用 actions/cache 存一下是不是会好一些?

# replace this with self-hosted labels, e.g. [self-hosted, Linux, ARM64].
name: Build and Upload ARM wheel
runs-on: ubuntu-24.04-arm
runs-on: linux.arm64.2xlarge
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

诶,等下,这个 xlarge 是不是不是免费的来着,用了 xlarge 可能会导致整个组织的 GitHub Actions 被停用

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

应该不是,到现在还没 pick,我先改回去

@youge325
Copy link
Copy Markdown
Author

这次倒是很快就失败了,估计是内存不足,有没有更小的视频

@youge325
Copy link
Copy Markdown
Author

也不对啊,才8s的视频,这也会爆内存吗

@SigureMo
Copy link
Copy Markdown

也不对啊,才8s的视频,这也会爆内存吗

奇怪,之前测试感觉没问题的呀,现在跑不通了么?#3 也是能过的,是偶尔失败还是稳定失败?

@SigureMo
Copy link
Copy Markdown

另外,可以单独提一个 PR 把 Python 3.9 删掉了,Paddle 已经不再发 3.9 的包了

@youge325
Copy link
Copy Markdown
Author

也不对啊,才8s的视频,这也会爆内存吗

奇怪,之前测试感觉没问题的呀,现在跑不通了么?#3 也是能过的,是偶尔失败还是稳定失败?

arm的CI test是稳定失败的,统一报 Error: Process completed with exit code 137.

@SigureMo
Copy link
Copy Markdown

arm的CI test是稳定失败的,统一报 Error: Process completed with exit code 137.

我去 arm 机器上测一下

SigureMo and others added 2 commits April 12, 2026 01:44
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

@SigureMo SigureMo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

该处调整后,单测可以正常通过

CI 上是否能跑倒是不重要了,如果只是 CI 资源不够的话,test 阶段可以先跳过

)
video, metadata = load_video(video_path, backend="torchcodec")
assert video.to(paddle.int64).sum().item() == 247759890390
assert video.to(paddle.int64).sum().item() == ffmpeg_rgb_sum(video_path)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里以 FFmpeg 的计算结果为 baseline,在 arm 上的结果与 x86 的并不一样,因此需要动态计算

由 copilot(GPT 5.4 xhigh)定位出来的

Copy link
Copy Markdown

@SigureMo SigureMo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMeow 🐾

过了,虽然不知道为啥,这里应该只能解决报错才对,解决不了 137

@SigureMo SigureMo changed the title Publish ARM wheels to GitHub Add ARM wheels build in CI Apr 11, 2026
@SigureMo SigureMo merged commit d0d23bd into paddle Apr 11, 2026
43 checks passed
@SigureMo SigureMo deleted the paddle_arm branch April 11, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants