Преглед изворни кода

Refactor Dockerfile and update .dockerignore for wasi-nn tests; adjust map-dir parameters in smoke test script (#4158)

liang.he пре 9 месеци
родитељ
комит
2a2632444b

+ 7 - 11
.dockerignore

@@ -1,16 +1,12 @@
 # for now, it is used to speed up wasi-nn tests only.
 # you shall adapt below rules to incoming requirements
 
-build
-*/build
-*/*/build
-*/*/*/build
-*/*/*/*/build
-*/*/*/*/*/build
-*/*/*/*/*/*/build
+**/build
+**/tmp.*
 .*
+**/*.gguf
 
-core/deps
-!core/deps/tensorflow-src
-samples
-tests
+/core/deps/
+!/core/deps/tensorflow-src
+/samples
+/tests

+ 27 - 21
core/iwasm/libraries/wasi-nn/test/Dockerfile.wasi-nn-smoke

@@ -30,21 +30,23 @@ RUN apt-get update \
   && apt-get upgrade -y \
   && apt-get install --no-install-recommends -y openvino-2023.2.0
 
+# Activate after upgrading to wasi-nn 0.7.0
+# #
+# # wasi-nn
+# # compilation requirements
+# WORKDIR /workspaces/wasi-nn
+# RUN git clone https://github.com/bytecodealliance/wasi-nn.git . \
+#   # update new wasmtime's cli (#100). Apr 27, 2024
+#   && git checkout 556890b121dd1171665d835aba4d04a7e29e37dc
 #
-# wasi-nn
-# compilation requirements
-WORKDIR /workspaces/wasi-nn
-RUN git clone --depth 1 https://github.com/bytecodealliance/wasi-nn.git .
-
-WORKDIR /workspaces/wasi-nn/rust/examples/classification-example/
-RUN cargo build --target=wasm32-wasip1
-
-WORKDIR /workspaces/wasi-nn/rust/examples/classification-example/build
-RUN cp ../target/wasm32-wasip1/debug/wasi-nn-example.wasm . \
-  && wget -q --no-clobber https://github.com/intel/openvino-rs/raw/main/crates/openvino/tests/fixtures/mobilenet/mobilenet.xml \
-  && wget -q --no-clobber https://github.com/intel/openvino-rs/raw/main/crates/openvino/tests/fixtures/mobilenet/mobilenet.bin
-# There are model files(mobilenet*) and wasm files(wasi-nn-example.wasm) in the directory,
-# /workspaces/wasi-nn/rust/examples/classification-example/build
+# WORKDIR /workspaces/wasi-nn/rust/examples/classification-example/
+# RUN cargo build --target=wasm32-wasip1
+#
+# ARG FIXTURE=https://download.01.org/openvinotoolkit/fixtures/mobilenet
+# RUN cp target/wasm32-wasip1/debug/wasi-nn-example.wasm . \
+#   && wget -q --no-clobber $FIXTURE/mobilenet.xml \
+#   && wget -q --no-clobber $FIXTURE/mobilenet.bin
+# # There are model files(mobilenet*) and wasm files(wasi-nn-example.wasm) in the directory,
 
 #
 # wasmedge
@@ -52,31 +54,34 @@ WORKDIR /tmp
 RUN wget -q https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh \
   && chmod a+x ./install.sh
 # RUN ./install.sh -p /opt/wasmedge --plugins wasi_nn-tensorflowlite wasi_nn-openvino
-RUN ./install.sh -r yes -D -p /opt/wasmedge --plugins wasi_nn-openvino --dist ubuntu20.04 \
+RUN ./install.sh -r yes -D -p /opt/wasmedge --plugins wasi_nn-openvino --dist ubuntu20.04 -v 0.14.0 \
   && /opt/wasmedge/bin/wasmedge --version
 ENV PATH=/opt/wasmedge/bin:${PATH}
 # ENV WASMEDGE_LIB_DIR=/opt/wasmedge/lib
 
 #
 # wasmedge-wasinn-examples
+# based on wasi-nn 0.6.0
 WORKDIR /workspaces/wasmedge-wasinn-examples
 RUN git clone --depth 1 https://github.com/second-state/WasmEdge-WASINN-examples.git .
-COPY core/iwasm/libraries/wasi-nn/test/bump_wasi_nn_to_0_6_0.patch .
-RUN git apply ./bump_wasi_nn_to_0_6_0.patch
 
-# recompile with wasi-nn 0.6.0
+# recompile with debug info
+ARG FIXTURE=https://download.01.org/openvinotoolkit/fixtures/mobilenet
 WORKDIR /workspaces/wasmedge-wasinn-examples/openvino-mobilenet-image/
 RUN pushd rust \
   && cargo build --target=wasm32-wasip1 \
   && popd \
-  && ./download_mobilenet.sh . \
+  && wget -q --no-clobber $FIXTURE/mobilenet.xml \
+  && wget -q --no-clobber $FIXTURE/mobilenet.bin \
   && ls -l mobilenet.xml mobilenet.bin
 
 WORKDIR /workspaces/wasmedge-wasinn-examples/openvino-mobilenet-raw/
 RUN pushd rust \
   && cargo build --target=wasm32-wasip1 \
   && popd \
-  && ./download_mobilenet.sh . \
+  && wget -q --no-clobber $FIXTURE/mobilenet.xml \
+  && wget -q --no-clobber $FIXTURE/mobilenet.bin \
+  && wget -q --no-clobber $FIXTURE/tensor-1x224x224x3-f32.bgr \
   && ls -l mobilenet.xml mobilenet.bin tensor-1x224x224x3-f32.bgr
 
 WORKDIR /workspaces/wasmedge-wasinn-examples/openvino-road-segmentation-adas/
@@ -91,7 +96,7 @@ RUN pushd rust \
 WORKDIR /workspaces/wasmedge-wasinn-examples/wasmedge-ggml/qwen
 RUN wget --progress=dot:giga https://www.modelscope.cn/models/qwen/Qwen1.5-0.5B-Chat-GGUF/resolve/master/qwen1_5-0_5b-chat-q2_k.gguf
 RUN cargo build --target=wasm32-wasip1
-
+#
 #
 # iwasm. build from source
 WORKDIR /workspaces/wamr
@@ -110,6 +115,7 @@ RUN OpenVINO_DIR=/usr/lib/openvino-2023.2.0 \
 
 ENV LD_LIBRARY_PATH=/usr/local/lib
 
+
 # add smoke test script
 COPY core/iwasm/libraries/wasi-nn/test/run_smoke_test.py /
 

+ 4 - 4
core/iwasm/libraries/wasi-nn/test/run_smoke_test.py

@@ -163,7 +163,7 @@ def execute_tflite_birds_v1_image(iwasm_bin: str, wasmedge_bin: str, cwd: Path):
     iwasm_output = execute_tflite_birds_v1_image_once(
         iwasm_bin,
         [
-            "--map-dir=.:.",
+            "--map-dir=.::.",
         ],
         cwd,
     )
@@ -181,7 +181,7 @@ def execute_openvino_mobilenet_image(iwasm_bin: str, wasmedge_bin: str, cwd: Pat
     iwasm_output = execute_openvino_mobilenet_image_once(
         iwasm_bin,
         [
-            "--map-dir=.:.",
+            "--map-dir=.::.",
         ],
         cwd,
     )
@@ -199,7 +199,7 @@ def execute_openvino_mobilenet_raw(iwasm_bin: str, wasmedge_bin: str, cwd: Path)
     iwasm_output = execute_openvino_mobilenet_raw_once(
         iwasm_bin,
         [
-            "--map-dir=.:.",
+            "--map-dir=.::.",
         ],
         cwd,
     )
@@ -236,7 +236,7 @@ def execute_openvino_road_segmentation_adas(
     iwasm_output = execute_openvino_road_segmentation_adas_once(
         iwasm_bin,
         [
-            "--map-dir=.:.",
+            "--map-dir=.::.",
         ],
         cwd,
     )