vortexgpgpu / pocl Goto Github PK
View Code? Open in Web Editor NEWa clone of POCL that includes RISC-V newlib devices support and Vortex
License: MIT License
a clone of POCL that includes RISC-V newlib devices support and Vortex
License: MIT License
Hello,
I am using Ubuntu 20.04. I applied all the steps in this readme.riscv-linux.
At this line I am having such an error:
omerguzel@omerguzel-HP-Pro:~/Projects/pocl_example/riscv-gnu-toolchain/build/llvm/build$ $RISCV_TOOLCHAIN_PATH/clang hello.c
bash: /home/omerguzel/Projects/pocl_example/riscv-gnu-toolchain/build/../drops/clang: No such file or directory
Why does this happen? did I make a mistake during the building?
When I change it to this
omerguzel@omerguzel-HP-Pro:~/Projects/pocl_example/riscv-gnu-toolchain/build/llvm/build$ clang hello.c
hello.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
It gives such an error. Could you help me with that, please?
Edit: I used the last version of the llvm because the version 10.x caused such an error:
0 lib/libLLVMBinaryFormat.so.10 lib/libLLVMSupport.so.10 -Wl,-rpath-link,/home/omerguzel/Projects/pocl_example/riscv-gnu-toolchain/build/llvm/build/lib && :
/usr/bin/ld: lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o: in function `llvm::writeArchive(llvm::StringRef, llvm::ArrayRef<llvm::NewArchiveMember>, bool, llvm::object::Archive::Kind, bool, bool, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >)':
ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1ab6): undefined reference to `llvm::raw_string_ostream::current_pos() const'
/usr/bin/ld: ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1ae9): undefined reference to `llvm::raw_string_ostream::current_pos() const'
/usr/bin/ld: ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1b16): undefined reference to `llvm::raw_string_ostream::current_pos() const'
/usr/bin/ld: ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1b41): undefined reference to `llvm::raw_string_ostream::current_pos() const'
/usr/bin/ld: ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1b6e): undefined reference to `llvm::raw_string_ostream::current_pos() const'
/usr/bin/ld: lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o:ArchiveWriter.cpp:(.text._ZN4llvm12writeArchiveENS_9StringRefENS_8ArrayRefINS_16NewArchiveMemberEEEbNS_6object7Archive4KindEbbSt10unique_ptrINS_12MemoryBufferESt14default_deleteIS8_EE+0x1bad): more undefined references to `llvm::raw_string_ostream::current_pos() const' follow
collect2: error: ld returned 1 exit status
[1478/2985] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
ninja: build stopped: subcommand failed.
Hello,
I'm having a kernel that has atomic_add and It can't find it
[2022-08-02 10:27:08.178407820]POCL: in fn void appendToProgramBuildLog(cl_program, unsigned int, std::__cxx11::string&) at line 141:
| ERROR | Error(s) while linking:
Cannot find symbol _Z10atomic_addPU8CLglobalVjj in kernel library
Cannot find symbol _Z10atomic_incPU8CLglobalVj in kernel library
Cannot find symbol _Z10atomic_minPU8CLglobalVii in kernel library
[2022-08-02 10:27:08.182772764]POCL: in fn compile_and_link_program at line 641:
| ERROR | build_error_code pocl_llvm_build_program() failed
Hi all,
I have a problem in building LLVM with these parameter.
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DBUILD_SHARED_LIBS=True -DCMAKE_INSTALL_PREFIX=$LLVM_PREFIX -DLLVM_BUILD_TESTS=False -DDEFAULT_SYSROOT=$RISCV_TOOLCHAIN_PATH/riscv32-unknown-elf -DLLVM_DEFAULT_TARGET_TRIPLE="riscv32-unknown-elf" -DLLVM_TARGETS_TO_BUILD="RISCV" ../llvm
riscv-toolchain-path is build by this project.
The problem that I face during build process is that it can not link library lib/libLLVMObject.so. The error log is:
[0/5] Performing configure step for 'runtimes'
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
CMake Warning at /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/llvm/cmake/modules/HandleLLVMOptions.cmake:277 (message):
-fPIC is not supported.
Call Stack (most recent call first):
/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/llvm/cmake/modules/HandleLLVMOptions.cmake:324 (add_flag_or_print_warning)
CMakeLists.txt:149 (include)
-- Using libunwind testing configuration: /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/libunwind/test/configs/llvm-libunwind-shared.cfg.in
CMake Error at /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/libunwind/src/CMakeLists.txt:109 (message):
Compiler doesn't support generation of unwind tables if exception support
is disabled. Building libunwind DSO with runtime dependency on C++ ABI
library is not supported.
-- Configuring incomplete, errors occurred!
See also "/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/runtimes/runtimes-bins/CMakeFiles/CMakeOutput.log".
See also "/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/runtimes/runtimes-bins/CMakeFiles/CMakeError.log".
FAILED: runtimes/runtimes-stamps/runtimes-configure
cd /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/runtimes/runtimes-bins && /usr/bin/cmake -DCMAKE_C_COMPILER=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/clang -DCMAKE_CXX_COMPILER=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/clang++ -DCMAKE_ASM_COMPILER=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/clang -DCMAKE_AR=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-ar -DCMAKE_RANLIB=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-ranlib -DCMAKE_NM=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-nm -DCMAKE_OBJDUMP=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-objdump -DCMAKE_OBJCOPY=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-objcopy -DCMAKE_STRIP=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-strip -DCMAKE_READELF=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/./bin/llvm-readelf -DCMAKE_C_COMPILER_TARGET=riscv32-unknown-elf -DCMAKE_CXX_COMPILER_TARGET=riscv32-unknown-elf -DCMAKE_ASM_COMPILER_TARGET=riscv32-unknown-elf -DCMAKE_INSTALL_PREFIX=/home/homidi/Desktop/research/projects/llvm-riscv -DLLVM_BINARY_DIR=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build -DLLVM_CONFIG_PATH=/home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/bin/llvm-config -DLLVM_ENABLE_WERROR=OFF -DLLVM_HOST_TRIPLE=x86_64-unknown-linux-gnu -DLLVM_HAVE_LINK_VERSION_SCRIPT=1 -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=OFF -DLLVM_USE_RELATIVE_PATHS_IN_FILES=OFF -DLLVM_LIT_ARGS=-sv -DLLVM_SOURCE_PREFIX= -DPACKAGE_VERSION=15.0.4 -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja -DCMAKE_C_COMPILER_LAUNCHER= -DCMAKE_CXX_COMPILER_LAUNCHER= -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCOMPILER_RT_BUILD_BUILTINS=Off -DLLVM_INCLUDE_TESTS=OFF -DLLVM_DEFAULT_TARGET_TRIPLE=riscv32-unknown-elf -DLLVM_ENABLE_PROJECTS_USED=ON -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON -DLLVM_BUILD_TOOLS=ON -DCMAKE_C_COMPILER_WORKS=ON -DCMAKE_CXX_COMPILER_WORKS=ON -DCMAKE_ASM_COMPILER_WORKS=ON -DHAVE_LLVM_LIT=ON "-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi;libunwind" -GNinja /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/llvm/runtimes/../../runtimes && /usr/bin/cmake -E touch /home/homidi/Desktop/research/projects/llvm-project-llvmorg-15.0.4/build/runtimes/runtimes-stamps//runtimes-configure
ninja: build stopped: subcommand failed.
I do not have any idea about the problem and how solve this because everything seems to be ok. Is there anybody who has an idea how I can solve this issue?
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
Hello,
First off, Merry Christmas and big thanks for bringing out this great project to enhance OpenCL support in riscv.
I was trying to compile natively on a Hifive Unmatched board with a few patches from main pocl/pocl repo to allow compilation on llvm 11+. I defined -DLLC_HOST_CPU=sifive-u74. But when I run poclcc -o kernel.pocl kernel.cl
to compile the kernel, I got linker errors can't link double-float modules with soft-float modules
. readelf reports the generated tempfile-xx-xx.so.o in kcache is indeed soft float. My whole machine is running on -march=rv64gc -mabi=lp64d.
I have tried specifying CFLAGS="-mabi=lp64d" -DEXTRA_HOST_LLC_FLAGS="-target-abi lp64d -mattr=+d"
and add ss << "-target-abi lp64d -target-feature +d -mattr=+d";
to lib/CL/pocl_llvm_build.cc, but the error is still there.
Do you have any idea how I can get around this issue?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.