Skip to content

Commit 75a1381

Browse files
committed
OmpSs-2-at-FPGA release 2.0.0
1 parent 78c5412 commit 75a1381

File tree

12 files changed

+83
-74
lines changed

12 files changed

+83
-74
lines changed

.gitmodules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
[submodule "nanos6-fpga"]
88
path = nanos6-fpga
99
url = ../nanos6-fpga.git
10-
[submodule "mcxx"]
11-
path = mcxx
12-
url = ../mcxx.git
10+
[submodule "llvm"]
11+
path = llvm
12+
url = ../llvm.git
1313
[submodule "ait"]
1414
path = ait
1515
url = ../ait.git

Changelog.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
# Release 2.0.0
2+
2023-06-28
3+
4+
* ait
5+
* Version 6.8.0
6+
* Added support for `alveo_u55c` board
7+
* Added support for HBM-based boards
8+
* Updated bitinfo to v10
9+
* Fixes for Vitis HLS and newer Vivado versions
10+
* mcxx
11+
* Deprecated support for Mercurium compiler
12+
* llvm
13+
* Added support for clang compiler
14+
* nanos6
15+
* Updated with upstream repository
16+
* xdma
17+
* Bump version to 4.3
18+
* Reduce copy chunk size to workaround issues in qdma 5
19+
* xtasks
20+
* Implemented `read_bitinfo` tool to read bitstream information from bitInfo BRAM
21+
* Picos OmpSs Manager (POM)
22+
* Version 7.1
23+
* Updated encryption key
24+
125
# Release 1.0.1
226
2023-03-06
327

Dockerfile

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ WORKDIR /tmp/work/
309309
ADD Makefile ./
310310
ADD ait ./ait
311311
ADD extrae ./extrae
312-
ADD mcxx ./mcxx
312+
ADD llvm ./llvm
313313
ADD nanos6-fpga ./nanos6-fpga
314314
ADD ompss-at-fpga-kernel-module ./ompss-at-fpga-kernel-module
315315
ADD xdma ./xdma
@@ -361,13 +361,13 @@ WORKDIR /tmp/work
361361

362362
#X86_64
363363
RUN make -j`nproc` PREFIX_TARGET=$INSTALLATION_PREFIX/x86_64/ompss-2/${RELEASE_TAG} PREFIX_HOST=$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG} TARGET=$(test $(arch) != x86_64 && echo x86_64-linux-gnu) PLATFORM=qdma \
364-
EXTRAE_HOME=$INSTALLATION_PREFIX/x86_64/ompss-2/${RELEASE_TAG}/extrae MCXX_NAME=mcxx-x86_64 \
364+
EXTRAE_HOME=$INSTALLATION_PREFIX/x86_64/ompss-2/${RELEASE_TAG}/extrae \
365365
all
366366
RUN make mrproper
367367

368368
#ARM64
369369
RUN make -j`nproc` PREFIX_TARGET=$INSTALLATION_PREFIX/arm64/ompss-2/${RELEASE_TAG} PREFIX_HOST=$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG} TARGET=$(test $(arch) != aarch64 && echo aarch64-linux-gnu) \
370-
EXTRAE_HOME=$INSTALLATION_PREFIX/arm64/ompss-2/${RELEASE_TAG}/extrae MCXX_NAME=mcxx-arm64 \
370+
EXTRAE_HOME=$INSTALLATION_PREFIX/arm64/ompss-2/${RELEASE_TAG}/extrae \
371371
NANOS6_CONFIG_FLAGS="--with-libnuma=$INSTALLATION_PREFIX/arm64/libnuma --with-symbol-resolution=indirect" \
372372
hwloc_CFLAGS="-I$INSTALLATION_PREFIX/arm64/hwloc/include" \
373373
hwloc_LIBS="-L$INSTALLATION_PREFIX/arm64/hwloc/lib -lhwloc" \
@@ -377,7 +377,7 @@ RUN make mrproper
377377
#ARM32
378378
#Assuming no one will compile from an arm32 platform => always setting TARGET
379379
#RUN make -j`nproc` PREFIX_TARGET=$INSTALLATION_PREFIX/arm32/ompss-2/${RELEASE_TAG} PREFIX_HOST=$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG} TARGET=arm-linux-gnueabihf \
380-
# EXTRAE_HOME=$INSTALLATION_PREFIX/arm32/ompss-2/${RELEASE_TAG}/extrae MCXX_NAME=mcxx-arm32 \
380+
# EXTRAE_HOME=$INSTALLATION_PREFIX/arm32/ompss-2/${RELEASE_TAG}/extrae \
381381
# all
382382
#RUN make mrproper
383383

@@ -402,9 +402,7 @@ RUN if [ "$BUILD_ONLY" = "true" ]; \
402402
RUN adduser --disabled-password --gecos '' ompss \
403403
&& adduser ompss sudo \
404404
&& echo 'ompss:ompss' | chpasswd \
405-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-arm64/bin" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh \
406-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-arm32/bin" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh \
407-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-x86_64/bin" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh \
405+
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/llvm/bin" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh \
408406
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/ait/bin" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh \
409407
&& echo "export PYTHONPATH=$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/ait" >>$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/environment_ompss_fpga.sh
410408
ADD ./dockerImageFiles/welcome_ompss_fpga.txt $INSTALLATION_PREFIX
@@ -414,9 +412,7 @@ ADD --chown=ompss:ompss ./dockerImageFiles/example ./example/
414412
#RUN ln -s $INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss/${RELEASE_TAG}/nanos6-fpga/share/doc/nanox/paraver_configs/ompss ./example/paraver_configs \
415413
RUN echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/wxparaver/bin" >>.bashrc \
416414
&& echo "cat $INSTALLATION_PREFIX/welcome_ompss_fpga.txt" >>.bashrc \
417-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-arm64/bin" >>.bashrc \
418-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-arm32/bin" >>.bashrc \
419-
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/mcxx-x86_64/bin" >>.bashrc \
415+
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/llvm/bin" >>.bashrc \
420416
&& echo "export PATH=\$PATH:$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/ait/bin" >>.bashrc \
421417
&& echo "export PYTHONPATH=$INSTALLATION_PREFIX/$(arch | sed 's/aarch64/arm64/g' | sed 's/armhf/arm32/g')/ompss-2/${RELEASE_TAG}/ait" >>.bashrc
422418

Makefile

Lines changed: 43 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,13 @@ ifndef XTASKS_PLATFORM
2020
XTASKS_PLATFORM := $(PLATFORM)
2121
endif
2222

23-
ifndef MCXX_NAME
24-
MCXX_NAME := mcxx
25-
endif
26-
2723
ifndef ENVSCRIPT_NAME
2824
ENVSCRIPT_NAME := environment_ompss_2_fpga.sh
2925
endif
3026

3127
export CROSS_COMPILE := $(TARGET)-
3228

33-
all: xdma-install xtasks-install nanos6-install mcxx-install ait-install envscript-install
29+
all: xdma-install xtasks-install nanos6-install llvm-install ait-install envscript-install
3430

3531
.PHONY: xdma xdma-install xtasks xtasks-install
3632

@@ -48,11 +44,11 @@ xtasks-install: xtasks
4844
pushd $(PREFIX_TARGET)/libxtasks/lib; \
4945
ln -s libxtasks-hwruntime.so libxtasks.so; popd;
5046

51-
.PHONY: nanos6-bootstrap nanos6-config mcxx-config-force nanos6-build nanos6-install
47+
.PHONY: nanos6-bootstrap nanos6-config llvm-config nanos6-build nanos6-install
5248

5349
nanos6-bootstrap:
5450
cd nanos6-fpga; \
55-
autoreconf -fiv
51+
./autogen.sh
5652

5753
ifdef EXTRAE_HOME
5854
WITH_EXTRAE := --with-extrae=$(EXTRAE_HOME)
@@ -81,33 +77,29 @@ nanos6-build: nanos6-config
8177
nanos6-install: nanos6-build
8278
$(MAKE) -C nanos6-build install
8379

84-
.PHONY: mcxx-bootstrap mcxx-config mcxx-config-force mcxx-build mcxx-install
85-
86-
mcxx-bootstrap:
87-
cd mcxx && autoreconf -fiv
88-
89-
mcxx-config: nanos6-install
90-
if [ ! -r mcxx-build/config.status ]; \
91-
then \
92-
$(MAKE) mcxx-config-force; \
93-
fi
94-
95-
mcxx-config-force: mcxx-bootstrap
96-
mkdir -p mcxx-build; \
97-
cd mcxx-build; \
98-
../mcxx/configure \
99-
--prefix=$(PREFIX_HOST)/$(MCXX_NAME) \
100-
--with-nanos6=$(PREFIX_TARGET)/nanos6 \
101-
--target=$(TARGET) \
102-
--enable-ompss-2 \
103-
--disable-vectorization \
104-
$(MCXX_CONFIG_FLAGS)
105-
106-
mcxx-build: mcxx-config
107-
$(MAKE) -C mcxx-build -j$(BUILDCPUS)
108-
109-
mcxx-install: mcxx-build
110-
$(MAKE) -C mcxx-build install
80+
.PHONY: llvm-config llvm-build llvm-install
81+
82+
llvm-config: nanos6-install
83+
mkdir -p llvm-build; \
84+
cd llvm-build; \
85+
cmake -G Ninja \
86+
-DCMAKE_INSTALL_PREFIX=$(PREFIX_HOST)/llvm \
87+
-DLLVM_TARGETS_TO_BUILD="X86;AArch64" \
88+
-DCMAKE_BUILD_TYPE=Release \
89+
-DCLANG_DEFAULT_NANOS6_HOME=$(PREFIX_TARGET)/nanos6 \
90+
-DLLVM_USE_SPLIT_DWARF=ON \
91+
-DLLVM_ENABLE_PROJECTS="clang" \
92+
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \
93+
-DCMAKE_C_COMPILER=clang \
94+
-DCMAKE_CXX_COMPILER=clang++ \
95+
-DLLVM_USE_LINKER=lld \
96+
../llvm/llvm
97+
98+
llvm-build: llvm-config
99+
ninja -C llvm-build
100+
101+
llvm-install: llvm-build
102+
ninja install -C llvm-build
111103

112104
.PHONY: ait-install
113105

@@ -120,7 +112,7 @@ ait-install:
120112

121113
environment_ompss_2_fpga.sh:
122114
@echo "#!/bin/bash" >environment_ompss_2_fpga.sh
123-
@echo 'export PATH=$$PATH:'$(PREFIX_HOST)'/'$(MCXX_NAME)'/bin' >>environment_ompss_2_fpga.sh
115+
@echo 'export PATH=$$PATH:'$(PREFIX_HOST)'/llvm/bin' >>environment_ompss_2_fpga.sh
124116
@echo 'export PATH=$$PATH:'$(PREFIX_HOST)'/ait/bin' >>environment_ompss_2_fpga.sh
125117
@echo 'export PYTHONPATH='$(PREFIX_HOST)'/ait' >>environment_ompss_2_fpga.sh
126118

@@ -130,14 +122,14 @@ envscript-install: environment_ompss_2_fpga.sh
130122
.PHONY: clean mrproper
131123

132124
clean:
133-
if [ -d mcxx-build ]; then $(MAKE) -C mcxx-build clean; fi
125+
if [ -d llvm-build ]; then rm llvm-build/CMakeCache/CMakeCache.txtt; fi
134126
if [ -d nanos6-build ]; then $(MAKE) -C nanos6-build clean; fi
135127
$(MAKE) -C xdma/src/$(PLATFORM) clean
136128
$(MAKE) -C xtasks/src/$(PLATFORM) clean
137129
rm -f environment_ompss_2_fpga.sh 2>/dev/null
138130

139131
mrproper: clean
140-
rm -rf mcxx-build 2>/dev/null
132+
rm -rf llvm-build 2>/dev/null
141133
rm -rf nanos6-build 2>/dev/null
142134

143135
.PHONY: help
@@ -148,25 +140,22 @@ help:
148140
@echo " PLATFORM Fallback board platform that xtasks and xdma backends will target if no specific one has been defined (e.g. zynq, qdma) [def: zynq]"
149141
@echo " XDMA_PLATFORM Board platform that xdma backend will target (e.g. zynq, qdma, euroexa_maxilink) [def: PLATFORM]"
150142
@echo " XTASKS_PLATFORM Board platform that xtasks backend will target (e.g. zynq, qdma) [def: PLATFORM]"
151-
@echo " PREFIX_HOST Installation prefix for the host tools (e.g. mcxx, ait) [def: /]"
143+
@echo " PREFIX_HOST Installation prefix for the host tools (e.g. llvm, ait) [def: /]"
152144
@echo " PREFIX_TARGET Installation prefix for the target tools (e.g. nanos6, libxdma) [def: /]"
153145
@echo " EXTRAE_HOME Extrae installation path"
154146
@echo " BUILDCPUS Number of processes used for building [def: nproc]"
155-
@echo " MCXX_NAME Mercurium installation path within PREFIX_HOST [def: mcxx]"
156147
@echo " ENVSCRIPT_NAME Environment script name within PREFIX_HOST [def: environment_ompss_2_fpga.sh]"
157148
@echo "Targets:"
158-
@echo " xdma Build xdma library"
159-
@echo " xdma-install Install xdma library"
160-
@echo " xtasks Build xtasks library"
161-
@echo " xtasks-install Install xtasks library"
162-
@echo " nanos6-bootstrap Nanos++ configuration bootstrap"
163-
@echo " nanos6-config Nanos++ configuration"
164-
@echo " nanos6-config-force Force Nanos++ configuration"
165-
@echo " nanos6-build Build Nanos++"
166-
@echo " nanos6-install Install Nanos++"
167-
@echo " mcxx-bootstrap Mercurium configuration bootstrap"
168-
@echo " mcxx-config Mercurium configuration"
169-
@echo " mcxx-config-force Force Mercurium configuration"
170-
@echo " mcxx-build Build Mercurium"
171-
@echo " mcxx-install Install Mercurium"
172-
@echo " envscript-install Install environment script"
149+
@echo " xdma Build xdma library"
150+
@echo " xdma-install Install xdma library"
151+
@echo " xtasks Build xtasks library"
152+
@echo " xtasks-install Install xtasks library"
153+
@echo " nanos6-bootstrap Nanos6 configuration bootstrap"
154+
@echo " nanos6-config Nanos6 configuration"
155+
@echo " nanos6-config-force Force Nanos6 configuration"
156+
@echo " nanos6-build Build Nanos6"
157+
@echo " nanos6-install Install Nanos6"
158+
@echo " llvm-config LLVM configuration"
159+
@echo " llvm-build Build LLVM"
160+
@echo " llvm-install Install LLVM"
161+
@echo " envscript-install Install environment script"

ait

Submodule ait updated 86 files

llvm

Submodule llvm added at 945c690

mcxx

Lines changed: 0 additions & 1 deletion
This file was deleted.

nanos6-fpga

Submodule nanos6-fpga updated 300 files

scripts/commit_release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ pushd `dirname ${BASH_SOURCE[0]}`/../ >/dev/null
2323
git submodule foreach git config credential.helper cache
2424

2525
#Stash the updated subrepos and commit the changes + create the tag
26-
git add ait mcxx nanos6-fpga ompss-at-fpga-kernel-module xdma xtasks Changelog.md README.md
26+
git add ait llvm nanos6-fpga ompss-at-fpga-kernel-module xdma xtasks Changelog.md README.md
2727
git commit -m "OmpSs-2-at-FPGA release ${VERSION}"
2828
git tag ${VERSION}
2929
git push origin master --tags

0 commit comments

Comments
 (0)