Open
Description
Issue Description
Hi, I encountered a test failure when cross-compiling XNNPACK for RISC-V (riscv64) architecture on an x86 platform. Specifically, the "xN-transpose-test" fails when running the test suite, while all other tests pass successfully.
Environment Information
- Host Platform: x86 (Ubuntu)
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64# uname -a
Linux VM-0-12-ubuntu 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec 5 13:09:44 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64#
- Target Architecture: riscv64
- XNNPACK Version:
git clone https://github.com/google/XNNPACK.git
- Cross-compilation Toolchain
wget https://mirror.nju.edu.cn/riscv-toolchains/release/riscv-collab/riscv-gnu-toolchain/LatestRelease/riscv64-glibc-ubuntu-24.04-llvm-nightly-2025.01.20-nightly.tar.xz
Steps to Reproduce
- set toolchain path
root@VM-0-12-ubuntu:~/XNNPACK# git diff cmake/riscv64.toolchain
diff --git a/cmake/riscv64.toolchain b/cmake/riscv64.toolchain
index 664f86724..3564a8ae4 100644
--- a/cmake/riscv64.toolchain
+++ b/cmake/riscv64.toolchain
@@ -11,6 +11,9 @@ IF(NOT VLEN MATCHES "^(32|64|128|256|512|1024|2048|4096|8192|16384|32768|65536)$
MESSAGE(FATAL_ERROR "User specified VLEN=${VLEN} is invalid.")
ENDIF()
+# 设置RISCV_TOOLCHAIN_ROOT的目录, 按照实际修改
+SET(RISCV_TOOLCHAIN_ROOT "/root/riscv" CACHE PATH "RISC-V工具链根目录")
+
IF(NOT RISCV_TOOLCHAIN_ROOT)
SET(CMAKE_C_COMPILER "riscv64-linux-gnu-gcc")
SET(CMAKE_ASM_COMPILER "riscv64-linux-gnu-gcc")
root@VM-0-12-ubuntu:~/XNNPACK# cd /root/riscv
root@VM-0-12-ubuntu:~/riscv# ls
bin etc include lib libexec riscv64-unknown-linux-gnu share sysroot
root@VM-0-12-ubuntu:~/riscv# cd bin/
root@VM-0-12-ubuntu:~/riscv/bin# ls
amdgpu-arch diagtool llvm-objdump riscv64-unknown-linux-gnu-elfedit riscv64-unknown-linux-gnu-gprofng
analyze-build git-clang-format llvm-pdbutil riscv64-unknown-linux-gnu-g++ riscv64-unknown-linux-gnu-ld
clang hmaptool llvm-profdata riscv64-unknown-linux-gnu-gcc riscv64-unknown-linux-gnu-ld.bfd
clang++ intercept-build llvm-ranlib riscv64-unknown-linux-gnu-gcc-14.2.0 riscv64-unknown-linux-gnu-lto-dump
clang-19 ld64.lld llvm-rc riscv64-unknown-linux-gnu-gcc-ar riscv64-unknown-linux-gnu-nm
clang-check ld.lld llvm-readobj riscv64-unknown-linux-gnu-gcc-nm riscv64-unknown-linux-gnu-objcopy
clang-cl lld llvm-size riscv64-unknown-linux-gnu-gcc-ranlib riscv64-unknown-linux-gnu-objdump
clang-cpp lld-link llvm-strings riscv64-unknown-linux-gnu-gcov riscv64-unknown-linux-gnu-ranlib
clang-extdef-mapping llvm-ar llvm-strip riscv64-unknown-linux-gnu-gcov-dump riscv64-unknown-linux-gnu-readelf
clang-format llvm-cov llvm-symbolizer riscv64-unknown-linux-gnu-gcov-tool riscv64-unknown-linux-gnu-run
clang-installapi llvm-cxxfilt nvptx-arch riscv64-unknown-linux-gnu-gdb riscv64-unknown-linux-gnu-size
clang-linker-wrapper llvm-dlltool riscv64-unknown-linux-gnu-addr2line riscv64-unknown-linux-gnu-gdb-add-index riscv64-unknown-linux-gnu-strings
clang-nvlink-wrapper llvm-dwp riscv64-unknown-linux-gnu-ar riscv64-unknown-linux-gnu-gfortran riscv64-unknown-linux-gnu-strip
clang-offload-bundler llvm-lib riscv64-unknown-linux-gnu-as riscv64-unknown-linux-gnu-gp-archive scan-build
clang-offload-packager llvm-mca riscv64-unknown-linux-gnu-c++ riscv64-unknown-linux-gnu-gp-collect-app scan-build-py
clang-refactor llvm-ml riscv64-unknown-linux-gnu-c++filt riscv64-unknown-linux-gnu-gp-display-html scan-view
clang-rename llvm-mt riscv64-unknown-linux-gnu-clang riscv64-unknown-linux-gnu-gp-display-src wasm-ld
clang-repl llvm-nm riscv64-unknown-linux-gnu-clang++ riscv64-unknown-linux-gnu-gp-display-text
clang-scan-deps llvm-objcopy riscv64-unknown-linux-gnu-cpp riscv64-unknown-linux-gnu-gprof
root@VM-0-12-ubuntu:~/riscv/bin#
- run shell script
/scripts/build-linux-riscv64.sh
- after build, run ctest
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64# pwd
/root/XNNPACK/build/linux/riscv64
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64# ctest
I got a test case error, what step did I do wrong? I would appreciate it if you could tell me
Error Output
`99% tests passed, 1 tests failed out of 654
Label Time Summary:
operator = 4514.28 sec*proc (117 tests)
Total Test time (real) = 6463.00 sec
The following tests FAILED:
253 - xN-transpose-test (Failed)
Errors while running CTest
Output from these tests are in: /root/XNNPACK/build/linux/riscv64/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
root@VM-0-12-ubuntu:~/XNNPACK/build/linux/riscv64#
Metadata
Metadata
Assignees
Labels
No labels