Test OMP + GPU + Wasm #2
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
-nocudalibon clang when--target=wasm32otherwise clang won't do anything.out, then.stheptaxthen callnvidia-link). It fails to emit the CUDA code on different stages depending on if I try 32/64 bits NVPTX code :NVPTX64
I think it produces wrong
.sLLVM bytecode because third stepptaxcomplains with:I haven't checked that the bytecode looked like
NVPTX
Running in principle the following:
In reality need to run sub-commands ran by had because
nvidia-linkstage needs to be given-m 32but clang does not.Got this even after recompiling libomptarget with
LIBOMP_ARCH X86<- Clang has a bug with this where you need to explicitely change it in the CMake file because their checks are broken (set(LIBOMP_ARCH i386)did it, and then you need to have a 32-bit compiler ready which isn't the case on lab machines).Even after recompilation I got the same error. I didn't have a 32-bit compiler on my system (and needed to include all the 64-bit headers, which might be why this didn't work.
TODO
Can be done on any system
for reference on lab machine
When tried to ignore the
nvlink fatal : Input file '/vol/bitbucket/mmf115/local/llvm-8.0.0/lib/libomptarget-nvptx.a:omptarget-nvptx_generated_cancel.cu.o' size does not match target '-m3error, and simply remove this file to see what it does, I gotwhich means that if we can make that work, and stitch the right things together (this should be in the faasm toolchain surely), the backend to libomptarget could be a multitenant safe GPU thingy. pretty cool