Skip to content

Commit

Permalink
Improve tests (#20)
Browse files Browse the repository at this point in the history
  • Loading branch information
devfacet committed Apr 13, 2024
1 parent f785eb4 commit 32d7819
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 17 deletions.
15 changes: 10 additions & 5 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ jobs:
matrix:
include:
- platform: linux/amd64
dockerfile: Dockerfile.generic
tag: nntbn:amd64
test: generic
dockerfile: Dockerfile.amd64-generic
tag: nntbn:amd64-generic
test: amd64-generic

- platform: linux/arm64
dockerfile: Dockerfile.arm-neon
Expand Down Expand Up @@ -76,14 +76,19 @@ jobs:
docker buildx create --name tests --use
docker buildx inspect --bootstrap
- name: Build and Run Test
- name: Build images
run: |
docker images
docker buildx build --platform ${{ matrix.platform }} -f scripts/docker/${{ matrix.dockerfile }} -t ${{ matrix.tag }} . --load
docker images
- name: Test
run: |
if [ "${{ matrix.test }}" == "arm-neon" ]; then
TESTS=arch/arm/neon/dot_product_perf,arch/arm/neon/neuron,arch/arm/neon/neuron_perf
elif [ "${{ matrix.test }}" == "arm-cmsis-dsp" ]; then
TESTS=arch/arm/cmsis-dsp/dot_product_perf,arch/arm/cmsis-dsp/neuron,arch/arm/cmsis-dsp/neuron_perf
elif [ "${{ matrix.test }}" == "generic" ]; then
elif [ "${{ matrix.test }}" == "amd64-generic" ]; then
TESTS=arch/generic/dot_product,arch/generic/dot_product_perf,arch/generic/layer,arch/generic/layer_multi,arch/generic/neuron,arch/generic/neuron_perf
else
echo "unknown test"
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ clean:
test:
@$(MAKE) build-tests ARCH=$(ARCH) TECH=$(TECH)
@echo " "
@$(eval TECH_FILTER := $(if $(TECH),$(shell echo $(TECH) | tr ',' '|'),.*))
@$(eval TESTS := $(shell find tests/arch/$(ARCH) -type f -name 'main.c' | grep -E "$(TECH_FILTER)" | sed 's|/main.c||' | sed 's|tests/||'))
@for test in $(TESTS); do \
$(MAKE) run-test ARCH=$(ARCH) TECH=$(TECH) TEST=$$test || exit 1; \
Expand Down
16 changes: 16 additions & 0 deletions scripts/docker/Dockerfile.amd64
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Example usage:
# Build:
# docker buildx build --platform linux/amd64 -f scripts/docker/Dockerfile.amd64 -t nntbn:amd64 . --load
# Run:
# docker run --rm -it --platform linux/amd64 nntbn:amd64 make test ARCH=generic LDFLAGS="-lm"

FROM ubuntu:latest
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
clang \
lld
COPY . /nn
WORKDIR /nn

ENTRYPOINT []
CMD ["/bin/bash"]
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Example usage:
# Build:
# docker buildx build --platform linux/arm64 -f scripts/docker/Dockerfile.generic -t nntbn:generic . --load
# docker buildx build --platform linux/amd64 -f scripts/docker/Dockerfile.amd64-generic -t nntbn:amd64-generic . --load
# Run:
# docker run --rm -it --platform linux/arm64 nntbn:generic /nn/build/tests/arch/generic/neuron
# docker run --rm -it --platform linux/arm64 nntbn:generic /nn/build/examples/arch/generic/dot_product
# docker run --rm -it --platform linux/amd64 nntbn:amd64-generic /nn/build/tests/arch/generic/neuron

# Build
FROM ubuntu:latest as build
Expand All @@ -13,7 +12,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
lld
COPY . /nn
WORKDIR /nn
RUN make build-examples ARCH=generic LDFLAGS="-lm"
RUN make build-tests ARCH=generic LDFLAGS="-lm"

# Runtime
Expand Down
18 changes: 18 additions & 0 deletions scripts/docker/Dockerfile.arm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Example usage:
# Build:
# docker buildx build --platform linux/arm64 -f scripts/docker/Dockerfile.arm -t nntbn:arm . --load
# Run:
# docker run --rm -it --platform linux/arm64 nntbn:arm make test ARCH=arm TECH=cmsis-dsp LDFLAGS="-lm"

FROM ubuntu:latest
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
clang \
lld \
gcc-arm-none-eabi \
libnewlib-arm-none-eabi
COPY . /nn
WORKDIR /nn

ENTRYPOINT []
CMD ["/bin/bash"]
2 changes: 0 additions & 2 deletions scripts/docker/Dockerfile.arm-cmsis-dsp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# docker buildx build --platform linux/arm64 -f scripts/docker/Dockerfile.arm-cmsis-dsp -t nntbn:arm-cmsis-dsp . --load
# Run:
# docker run --rm -it --platform linux/arm64 nntbn:arm-cmsis-dsp /nn/build/tests/arch/arm/cmsis-dsp/neuron
# docker run --rm -it --platform linux/arm64 nntbn:arm-cmsis-dsp /nn/build/examples/arch/arm/cmsis-dsp/dot_product

# Build
FROM ubuntu:latest as build
Expand All @@ -16,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libnewlib-arm-none-eabi
COPY . /nn
WORKDIR /nn
RUN make build-examples ARCH=arm TECH=cmsis-dsp LDFLAGS="-lm"
RUN make build-tests ARCH=arm TECH=cmsis-dsp LDFLAGS="-lm"

# Runtime
Expand Down
2 changes: 0 additions & 2 deletions scripts/docker/Dockerfile.arm-neon
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# docker buildx build --platform linux/arm64 -f scripts/docker/Dockerfile.arm-neon -t nntbn:arm-neon . --load
# Run:
# docker run --rm -it --platform linux/arm64 nntbn:arm-neon /nn/build/tests/arch/arm/neon/neuron
# docker run --rm -it --platform linux/arm64 nntbn:arm-neon /nn/build/examples/arch/arm/neon/dot_product

# Build
FROM ubuntu:latest as build
Expand All @@ -16,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libnewlib-arm-none-eabi
COPY . /nn
WORKDIR /nn
RUN make build-examples ARCH=arm TECH=neon LDFLAGS="-lm"
RUN make build-tests ARCH=arm TECH=neon LDFLAGS="-lm"

# Runtime
Expand Down
2 changes: 0 additions & 2 deletions scripts/docker/Dockerfile.armv7-neon
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# docker buildx build --platform linux/arm/v7 -f scripts/docker/Dockerfile.armv7-neon -t nntbn:armv7-neon . --load
# Run:
# docker run --rm -it --platform linux/arm/v7 nntbn:armv7-neon /nn/build/tests/arch/arm/neon/neuron
# docker run --rm -it --platform linux/arm/v7 nntbn:armv7-neon /nn/build/examples/arch/arm/neon/dot_product

# Build
FROM arm32v7/ubuntu:latest as build
Expand All @@ -16,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libnewlib-arm-none-eabi
COPY . /nn
WORKDIR /nn
RUN make build-examples ARCH=arm TECH=neon LDFLAGS="-lm" CFLAGS="-mfpu=neon-vfpv4"
RUN make build-tests ARCH=arm TECH=neon LDFLAGS="-lm" CFLAGS="-mfpu=neon-vfpv4"

# Runtime
Expand Down
2 changes: 0 additions & 2 deletions scripts/docker/Dockerfile.armv8-neon
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# docker buildx build --platform linux/arm/v8 -f scripts/docker/Dockerfile.armv8-neon -t nntbn:armv8-neon . --load
# Run:
# docker run --rm -it --platform linux/arm/v8 nntbn:armv8-neon /nn/build/tests/arch/arm/neon/neuron
# docker run --rm -it --platform linux/arm/v8 nntbn:armv8-neon /nn/build/examples/arch/arm/neon/dot_product

# Build
FROM arm64v8/ubuntu:latest as build
Expand All @@ -16,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libnewlib-arm-none-eabi
COPY . /nn
WORKDIR /nn
RUN make build-examples ARCH=arm TECH=neon LDFLAGS="-lm"
RUN make build-tests ARCH=arm TECH=neon LDFLAGS="-lm"

# Runtime
Expand Down

0 comments on commit 32d7819

Please sign in to comment.