Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when run "dogfood/vecadd3/prebuilt.sh" #5

Open
gongxiaozhang opened this issue Dec 12, 2022 · 0 comments
Open

Error when run "dogfood/vecadd3/prebuilt.sh" #5

gongxiaozhang opened this issue Dec 12, 2022 · 0 comments

Comments

@gongxiaozhang
Copy link

gongxiaozhang commented Dec 12, 2022

hi all:
I want to use pocl to build a spirv file, and i thought the script "dogfood/vecadd3/prebuilt.sh" was what i need。
However some error occurs when running the "dogfood/vecadd3/prebuilt.sh" script。
-------------------------------------------
Error Info:
Final POCL_DEBUG flags: FFFFFFFFFFFFFFFF
[2022-11-12 08:02:43.826648145]POCL: in fn pocl_init_devices at line 503:
| GENERAL | Installing SIGFPE handler...
[2022-11-12 08:02:43.826727399]POCL: in fn cl_int pocl_vortex_init(unsigned int, cl_device_id, const char*) at line 236:
| WARNING | INIT dlcache DOTO delete
[2022-11-12 08:02:43.827492932]POCL: in fn POclCreateProgramWithIL at line 66:
| LLVM | SPIR-V binary detected, converting to LLVM SPIR
[2022-11-12 08:02:43.828395629]POCL: in fn pocl_run_command at line 1107:
| GENERAL | Launching: /opt/vortex/llvm-riscv/bin/llvm-spirv
[2022-11-12 08:02:43.844885781]POCL: in fn POclCreateProgramWithIL at line 118:
| GENERAL | Creating context from IL for 1 devices
[2022-11-12 08:02:43.844915612]POCL: in fn compile_and_link_program at line 571:
| LLVM | building program with options (null)
[2022-11-12 08:02:43.845069770]POCL: in fn compile_and_link_program at line 662:
| LLVM | LLVM-SPIR binary detected
[2022-11-12 08:02:43.845093391]POCL: in fn compile_and_link_program at line 679:
| WARNING | SPIR binary provided, but no spir in build options
[2022-11-12 08:02:43.845510064]POCL: in fn llvm::Module* getKernelLibrary(cl_device_id) at line 894:
| LLVM | Using /opt/vortex/pocl/compiler/lib/../share/pocl/kernel-riscv32.bc as the built-in lib.
[2022-11-12 08:02:44.050439298]POCL: in fn int pocl_llvm_link_program(cl_program, unsigned int, char*, cl_uint, unsigned char**, size_t*, void**, int, int) at line 675:
| ERROR | CL_LINK_PROGRAM_FAILURE Device address bits != SPIR binary triple address bits, device: riscv32 / module: @�g�^U
[2022-11-12 08:02:44.050488262]POCL: in fn compile_and_link_program at line 688:
| ERROR | CL_LINK_PROGRAM_FAILURE Failed to link SPIR program.bc
CL_LINK_PROGRAM_FAILURE in main on line 395


About my environment:
vortexgpgpu/pocl repo: commit-id 778ef49 @ master (newest)
vortexgpgpu/vortex-toolchain-prebuilt: commit-id c411fbb@master (about 2month ago)

I only change some tool path in the dogfood/vecadd3/prebuilt.sh, no others changes to your code。
The diff is as follows:

compile_riscv_lx_spv()
{
-RISCV_TOOLCHAIN_PATH=/home/blaise/dev/riscv-gnu-toolchain/release_linux64
-LLVM_PREFIX=/home/blaise/dev/llvm-riscv/releaseRV64
-POCL_CC_PATH=/home/blaise/dev/pocl/drops_rvlx64_cc
-POCL_RT_PATH=/home/blaise/dev/pocl/drops_rvlx64_rt
+RISCV_TOOLCHAIN_PATH=/opt/vortex/riscv-gnu-toolchain
+LLVM_PREFIX=/opt/vortex/llvm-riscv
+POCL_CC_PATH=/opt/vortex/pocl/compiler
+POCL_RT_PATH=/opt/vortex/pocl/runtime

shin0403 pushed a commit that referenced this issue Aug 28, 2023
The segmentation fault can be observed with llvm-10, llvm-11 and llvm-12
and seems to be fixed in llvm-13. It happens on the architectures armhf
and armel (both 32-bit) always and on x86_64 sporadically.
The test segfaults only on the first run (i.e. the kernel is not yet in
pocl's kernel cache) while it passes on subsequent execution (with
something already in the kernel cache), emitting only some llvm
diagnostics:

inlinable function call in a function with debug info must have a !dbg location
  %11 = call i32 @_Z12get_local_idj(i32 0)
inlinable function call in a function with debug info must have a !dbg location
  %19 = call i32 @_Z12get_local_idj(i32 1)
inlinable function call in a function with debug info must have a !dbg location
  %27 = call i32 @_Z12get_local_idj(i32 2)

The backtrace of the segmentation fault as observed with llvm-10 and pocl 1.6:
 #0  getEmissionKind () at .../llvm/include/llvm/IR/DebugInfoMetadata.h:1244
 #1  initialize () at .../llvm/lib/CodeGen/LexicalScopes.cpp:53
 #2  0xb14102f0 in computeIntervals () at .../llvm/lib/CodeGen/LiveDebugVariables.cpp:979
 #3  runOnMachineFunction () at .../llvm/lib/CodeGen/LiveDebugVariables.cpp:996
 #4  runOnMachineFunction () at .../llvm/lib/CodeGen/LiveDebugVariables.cpp:1023
 #5  0xb14856c8 in runOnFunction () at .../llvm/lib/CodeGen/MachineFunctionPass.cpp:73
 #6  0xb12ff494 in runOnFunction () at .../llvm/lib/IR/LegacyPassManager.cpp:1481
 #7  0xb12ff750 in runOnModule () at .../llvm/lib/IR/LegacyPassManager.cpp:1517
 #8  0xb12ffba8 in runOnModule () at .../llvm/lib/IR/LegacyPassManager.cpp:1582
 #9  run () at .../llvm/lib/IR/LegacyPassManager.cpp:1694
 #10 0xb6e64c82 in pocl_llvm_codegen (Device=Device@entry=0xdb0010, Modp=0x1361838, Output=Output@entry=0xbefde86c, OutputSize=OutputSize@entry=0xbefde880) at ./lib/CL/pocl_llvm_wg.cc:624
 #11 0xb6e291de in llvm_codegen (output=output@entry=0xdeb898 "...BMDHA/Sdot_kernel/0-0-0/Sdot_kernel.so", device_i=device_i@entry=0, kernel=kernel@entry=0xbefe0240,
     device=0xdb0010, command=command@entry=0xbefe0278, specialize=specialize@entry=0) at ./lib/CL/devices/common.c:158
 #12 0xb6e2ae44 in pocl_check_kernel_disk_cache (command=command@entry=0xbefe0278, specialized=specialized@entry=0) at ./lib/CL/devices/common.c:958
 #13 0xb6e2b262 in pocl_check_kernel_dlhandle_cache (command=0xbefe0278, initial_refcount=0, specialize=0) at ./lib/CL/devices/common.c:1081
 #14 0xb6e033d4 in program_compile_dynamic_wg_binaries (program=program@entry=0xd8ab88) at ./lib/CL/pocl_build.c:179
 #15 0xb6e13f20 in get_binary_sizes (sizes=0xbefe0384, program=0xd8ab88) at ./lib/CL/clGetProgramInfo.c:36
 #16 POclGetProgramInfo (program=0xd8ab88, param_name=4453, param_value_size=128, param_value=0xbefe0384, param_value_size_ret=0xbefe0380) at ./lib/CL/clGetProgramInfo.c:115
 #17 0x00473070 in main () at 975931.c:238

pocl/pocl#889
https://bugs.debian.org/975931
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

No branches or pull requests

1 participant