You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Samsung: test_yolo26 fails to lower, AI LiteCore cannot export a CUCustomOp layer #23481
backends/samsung/test/models/test_yolo26.py fails to lower yolo26 in the test-samsung-models-linux CI job. The Samsung compiler (AI LiteCore v1.2.0) cannot export one layer:
[Exynos AI LiteCore][INFO] Compiled successfully
[Exynos AI LiteCore][ERROR] cannot find exporter for layer type : CUCustomOp
[ERROR][Exynos ExecuTorch][PyEnnWrapperAdaptor.h:66]: Compile model failed.
...
File "backends/samsung/enn_preprocess.py", line 77, in preprocess
assert enn_context_binary is not None and len(enn_context_binary) > 0
AssertionError
Why it shows up only now
The test was added in #22960, but this job had never run it to the end. On main it fails earlier, at import, because the job did not install ultralytics. #23452 adds that install, and then the test reaches the compiler and fails as above. In that run, the other 12 Samsung model tests pass.
#22960 did not run this job before merging. For pull requests, trunk.yml only runs it when the PyTorch pin, .ci/scripts, or zephyr changes, or with the ciflow/trunk label.
What the log shows
The partitioner finds 3 subgraphs. The first one compiles, then fails at export.
That subgraph holds the only topk and amax nodes in the model, and those builders are new in Samsung Exynos AI LiteCore - Support yolo26 #22960. The log does not name the layer that became CUCustomOp, so they are suspects, not a confirmed cause.
The CI test builds yolo26n in fp16 at 320x320 through SamsungTester. The test plan in Samsung Exynos AI LiteCore - Support yolo26 #22960 used yolo26s, A8W8, 640x640 through yolo26_validate.py, so this path may never have been run.
Notes for whoever picks this up
The test only exports and lowers. It never runs on the device. So it can be reproduced in a compile-only setup (setup-samsung-linux-deps.sh --skip-device-connect, as the quantized-models job does) with -p test_yolo26.py. That takes minutes, not the full 4-hour device job.
Make test_yolo26_fp16 pass in test-samsung-models-linux. Either the yolo26 lowering avoids the layer the SDK cannot export, or the SDK version CI uses supports it.
@Jiseong-oh, could you take a look? This needs a fix on the Samsung side, and you know this code best.
Here is where things stand. #23452 is now merged. It installs ultralytics in test-samsung-models-linux, so test_yolo26 gets past the import that failed on main since #22960. The job is still red, but only because of the compiler error in the description. The other 12 Samsung model tests pass.
To fix it:
Find which node becomes CUCustomOp. The log does not name it. The failing subgraph is the only one with the topk and amax nodes from Samsung Exynos AI LiteCore - Support yolo26 #22960, so those are the first things to check.
Fix the lowering for that node, or make the partitioner leave it out of the delegate if the SDK cannot export it.
Run test_yolo26.py until it passes. It only exports and compiles, so it does not need the device or the full 4-hour job. A compile-only setup is enough (setup-samsung-linux-deps.sh --skip-device-connect, then python -m unittest discover -s backends/samsung/test/models -p test_yolo26.py).
About #23351: its Samsung job still failed at the ultralytics import, because it was based on main before #23452. So it does not show yet whether SDK v1.2.1 can export this layer. If you rebase it on current main, its next run will answer that.
@shoumikhin Sorry for the inconvenience. I expect the YOLO26 compile issue to be fixed once exynos-ai-litecore v1.2.1 is enabled. If the error still occurs if PR #23351 (link) is merged, I'll check it again.
Thanks, @Jiseong-oh. #23351 now runs the Samsung job on v1.2.1 with yolo26 installed, so we can see the answer. The old error is gone, but test_yolo26_fp16 still fails, with a new one:
[Exynos AI LiteCore][ERROR] Only can support Topk with two outputs. layer: aten_topk_default(TopkV2)
[ERROR][Exynos ExecuTorch][PyEnnWrapperAdaptor.h:93]: Compile model failed.
The other 12 tests pass.
The failing node is yolo26's scores.max(dim=-1)[0].topk(k)[1], which uses only the indices. For a single used output, the TopK builder sends output: "index" with one output tensor, and v1.2.1 rejects that. Defining both outputs for the SDK, even when the graph uses only one, should get past it. The topk op test always uses both outputs, so it does not cover this case.
So merging #23351 will not make this job green on its own.
Activity
Install the yolo26 requirements in the Samsung models CI job (#23452)
shoumikhin commentedon Oct 6, 2026
@Jiseong-oh, could you take a look? This needs a fix on the Samsung side, and you know this code best.
Here is where things stand. #23452 is now merged. It installs
ultralyticsintest-samsung-models-linux, sotest_yolo26gets past the import that failed on main since #22960. The job is still red, but only because of the compiler error in the description. The other 12 Samsung model tests pass.To fix it:
CUCustomOp. The log does not name it. The failing subgraph is the only one with thetopkandamaxnodes from Samsung Exynos AI LiteCore - Support yolo26 #22960, so those are the first things to check.test_yolo26.pyuntil it passes. It only exports and compiles, so it does not need the device or the full 4-hour job. A compile-only setup is enough (setup-samsung-linux-deps.sh --skip-device-connect, thenpython -m unittest discover -s backends/samsung/test/models -p test_yolo26.py).About #23351: its Samsung job still failed at the
ultralyticsimport, because it was based on main before #23452. So it does not show yet whether SDK v1.2.1 can export this layer. If you rebase it on current main, its next run will answer that.cc @SS-JIA @digantdesai @kimishpatel
shoumikhin commentedon Oct 6, 2026
I marked this job unstable in #23507, so
viable/strictcan advance again while this is open. The job still runs on every commit and still shows red.When this is fixed and
test-samsung-models-linuxis green on main, please close #23507 as well.Jiseong-oh commentedon Oct 7, 2026
@shoumikhin Sorry for the inconvenience. I expect the YOLO26 compile issue to be fixed once exynos-ai-litecore v1.2.1 is enabled. If the error still occurs if PR #23351 (link) is merged, I'll check it again.
shoumikhin commentedon Oct 7, 2026
Thanks, @Jiseong-oh. #23351 now runs the Samsung job on v1.2.1 with yolo26 installed, so we can see the answer. The old error is gone, but
test_yolo26_fp16still fails, with a new one:The other 12 tests pass.
The failing node is yolo26's
scores.max(dim=-1)[0].topk(k)[1], which uses only the indices. For a single used output, the TopK builder sendsoutput: "index"with one output tensor, and v1.2.1 rejects that. Defining both outputs for the SDK, even when the graph uses only one, should get past it. Thetopkop test always uses both outputs, so it does not cover this case.So merging #23351 will not make this job green on its own.
Jiseong-oh commentedon Oct 7, 2026
you're right, i will look at the issue.
Jiseong-oh commentedon Oct 13, 2026
@shoumikhin #23351 pr was merged. the ci is working well now.