Skip to content

Commit bd9b5b0

Browse files
committed
Adding the build test for the neutron backend library.
1 parent a07e13c commit bd9b5b0

File tree

3 files changed

+44
-3
lines changed

3 files changed

+44
-3
lines changed

.github/workflows/trunk.yml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ jobs:
245245
toolchain_cmake=$(realpath ${toolchain_cmake})
246246
247247
# Build and test size test
248-
bash test/build_size_test.sh "-DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} -DEXECUTORCH_BUILD_ARM_BAREMETAL=ON"
248+
bash test/build_size_test.sh "-DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} -DEXECUTORCH_BUILD_ARM_BAREMETAL=ON -DEXECUTORCH_BUILD_NXP_NEUTRON=ON"
249249
elf="cmake-out/test/size_test"
250250
251251
# Dump basic info
@@ -271,6 +271,45 @@ jobs:
271271
exit 1
272272
fi
273273
274+
nxp-build-test:
275+
name: nxp-build-test
276+
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
277+
permissions:
278+
id-token: write
279+
contents: read
280+
with:
281+
runner: linux.2xlarge
282+
docker-image: executorch-ubuntu-22.04-arm-sdk
283+
submodules: 'recursive'
284+
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
285+
timeout: 90
286+
script: |
287+
# The generic Linux job chooses to use base env, not the one setup by the image
288+
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
289+
conda activate "${CONDA_ENV}"
290+
291+
source .ci/scripts/utils.sh
292+
install_executorch "--use-pt-pinned-commit"
293+
.ci/scripts/setup-arm-baremetal-tools.sh
294+
source examples/arm/ethos-u-scratch/setup_path.sh
295+
296+
# User baremetal toolchain
297+
arm-none-eabi-c++ --version
298+
toolchain_cmake=examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake
299+
toolchain_cmake=$(realpath ${toolchain_cmake})
300+
301+
# Build
302+
bash test/build_size_test.sh "-DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} -DEXECUTORCH_BUILD_NXP_NEUTRON=ON"
303+
304+
# Build check for the neutron backend library
305+
lib_neutron="cmake-out/backends/nxp/libexecutorch_delegate_neutron.a"
306+
if [ -f $lib_neutron ]; then
307+
echo "Neutron backend library built."
308+
else
309+
echo "Neutron backend library not found!"
310+
exit 1
311+
fi
312+
274313
test-coreml-delegate:
275314
name: test-coreml-delegate
276315
uses: pytorch/test-infra/.github/workflows/macos_job.yml@main

backends/nxp/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
set(
77
_common_include_directories
88
${CMAKE_CURRENT_SOURCE_DIR}/../../..
9+
${CMAKE_CURRENT_SOURCE_DIR}/../../runtime/core/portable_type/c10
910
)
11+
add_compile_definitions(C10_USING_CUSTOM_GENERATED_MACROS)
1012

1113
set(_neutron_sources ${CMAKE_CURRENT_SOURCE_DIR}/runtime/NeutronBackend.cpp )
1214

backends/nxp/runtime/NeutronBackend.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ class NeutronBackend final : public PyTorchBackendInterface {
236236
// cfg->mcfg.kernels
237237
const uint8_t* transpositionFlags =
238238
static_cast<const uint8_t*>(processed->data());
239-
uint32_t numInputs = transpositionFlags[INPUT_TENSOR_FORMAT_LEN_POS];
240-
uint32_t numOutputs = transpositionFlags[OUTPUT_TENSOR_FORMAT_LEN_POS];
239+
int numInputs = transpositionFlags[INPUT_TENSOR_FORMAT_LEN_POS];
240+
int numOutputs = transpositionFlags[OUTPUT_TENSOR_FORMAT_LEN_POS];
241241
cfg->inputTranspositionFlags =
242242
INPUT_TENSOR_FORMAT_ARRAY_ADDR(transpositionFlags);
243243
cfg->outputTranspositionFlags =

0 commit comments

Comments
 (0)