- Add support for custom TIDL inference relay node - Use github.com/TexasInstruments repositories - Include CPP live demo and Python file-to-stdout inference scripts - TVM license file is appended with licences of 3rd party components used inside TVM - License field is extended to include licenses from submodules
Signed-off-by: Djordje Senicic <[email protected]> --- v4 changes: Remove RDEPENDS on tidl-api (neo-ai-dlr can run on ARM only too, but without TIDL) .../neo-ai-dlr.bbappend} | 99 +++++++++---------- ...akeLists-skip-cloning-of-googletests.patch | 54 ---------- 2 files changed, 45 insertions(+), 108 deletions(-) rename recipes-support/{neo-ai/neo-ai-dlr_git.bb => neo-ai-dlr/neo-ai-dlr.bbappend} (31%) delete mode 100644 recipes-support/neo-ai/files/0001-CMakeLists-skip-cloning-of-googletests.patch diff --git a/recipes-support/neo-ai/neo-ai-dlr_git.bb b/recipes-support/neo-ai-dlr/neo-ai-dlr.bbappend similarity index 31% rename from recipes-support/neo-ai/neo-ai-dlr_git.bb rename to recipes-support/neo-ai-dlr/neo-ai-dlr.bbappend index 636714a..cfa79c0 100644 --- a/recipes-support/neo-ai/neo-ai-dlr_git.bb +++ b/recipes-support/neo-ai-dlr/neo-ai-dlr.bbappend @@ -1,77 +1,68 @@ -SUMMARY = "NEO-AI Deep Learning Runtime" -DESCRIPTION = "Neo-AI-DLR is a common runtime for machine learning models compiled by AWS SageMaker Neo, TVM, or TreeLite." -HOMEPAGE = "https://aws.amazon.com/sagemaker/neo/" -LICENSE = "Apache-2.0 & BSD-3-Clause" +PR_append = ".int0" + +LICENSE = "Apache-2.0 & BSD-3-Clause & BSD-2-Clause & Zlib & MIT & Unlicense" LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658 \ - file://3rdparty/tvm/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e \ + file://3rdparty/tvm/LICENSE;md5=f563935cf80d1c889dd958372e9ea7c4 \ file://3rdparty/tvm/3rdparty/dmlc-core/LICENSE;md5=0ca7d6e8f4af26868cb42025ad83374b \ file://3rdparty/tvm/3rdparty/dlpack/LICENSE;md5=f62d4e85ba68a1574b74d97ab8dea9ab \ - file://3rdparty/tvm/3rdparty/HAlideIR/LICENSE;md5=9910386e68f0616e1ecf1037479fa97e \ + file://3rdparty/tvm/3rdparty/rang/LICENSE;md5=911690f51af322440237a253d695d19f \ file://3rdparty/treelite/LICENSE;md5=34400b68072d710fecd0a2940a0d1658 \ file://3rdparty/treelite/dmlc-core/LICENSE;md5=0ca7d6e8f4af26868cb42025ad83374b \ - file://3rdparty/treelite/3rdparty/fmt/LICENSE.rst;md5=c2e38bc8629eac247a73b65c1548b2f0 \ + file://3rdparty/treelite/3rdparty/fmt/LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b \ + file://3rdparty/treelite/3rdparty/protobuf/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \ + file://3rdparty/treelite/3rdparty/protobuf/third_party/benchmark/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://3rdparty/treelite/3rdparty/protobuf/third_party/googletest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ " -PV = "1.0" +SRC_DISTRIBUTE_LICENSES += "Unlicense" + +PV = "1.01" + +DEPENDS += " opencv " -BRANCH ?= "master" +BRANCH-NEO-AI-DLR = "dev" +BRANCH-NEO-TVM = "dev" # Main DLR sources plus submodules (and submodules of submodules). -SRC_URI = "git://github.com/neo-ai/neo-ai-dlr;protocol=https;branch=${BRANCH};name=neo-ai-dlr \ - git://github.com/neo-ai/tvm;protocol=https;branch=stable;destsuffix=${S}/3rdparty/tvm;name=neo-ai-tvm \ +SRC_URI = "git://github.com/TexasInstruments/neo-ai-dlr;protocol=https;branch=${BRANCH-NEO-AI-DLR};name=neo-ai-dlr \ + git://github.com/TexasInstruments/tvm;protocol=https;branch=${BRANCH-NEO-TVM};destsuffix=${S}/3rdparty/tvm;name=neo-ai-tvm \ git://github.com/dmlc/dmlc-core;protocol=https;branch=master;destsuffix=${S}/3rdparty/tvm/3rdparty/dmlc-core;name=neo-ai-tvm-dmlc-core \ git://github.com/dmlc/dlpack;protocol=https;branch=master;destsuffix=${S}/3rdparty/tvm/3rdparty/dlpack;name=neo-ai-tvm-dlpack \ - git://github.com/dmlc/HalideIR;protocol=https;branch=master;destsuffix=${S}/3rdparty/tvm/3rdparty/HAlideIR;name=neo-ai-tvm-halideir \ + git://github.com/agauniyal/rang;protocol=https;branch=master;destsuffix=${S}/3rdparty/tvm/3rdparty/rang;name=neo-ai-tvm-rang \ git://github.com/neo-ai/treelite;protocol=https;branch=master;destsuffix=${S}/3rdparty/treelite;name=neo-ai-treelite \ git://github.com/dmlc/dmlc-core;protocol=https;branch=master;destsuffix=${S}/3rdparty/treelite/dmlc-core;name=neo-ai-treelite-dmlc-core \ git://github.com/fmtlib/fmt;protocol=https;nobranch=1;destsuffix=${S}/3rdparty/treelite/3rdparty/fmt;name=neo-ai-treelite-fmt \ - file://0001-CMakeLists-skip-cloning-of-googletests.patch \ + git://github.com/google/protobuf;protocol=https;nobranch=1;destsuffix=${S}/3rdparty/treelite/3rdparty/protobuf;name=neo-ai-treelite-protobuf \ + git://github.com/google/benchmark;protocol=https;nobranch=1;destsuffix=${S}/3rdparty/treelite/3rdparty/protobuf/third_party/benchmark;name=neo-ai-treelite-protobuf-benchmark \ + git://github.com/google/googletest;protocol=https;nobranch=1;destsuffix=${S}/3rdparty/treelite/3rdparty/protobuf/third_party/googletest;name=neo-ai-treelite-protobuf-googletest \ " -SRCREV_neo-ai-dlr = "35ed4fa2607056608451d85508fea70f458a14a6" -SRCREV_neo-ai-tvm = "44779571412930681eef9e8b9d32aa845b8cc5ad" -SRCREV_neo-ai-tvm-dmlc-core = "4d49691f1a9d944c3b0aa5e63f1db3cad1f941f8" -SRCREV_neo-ai-tvm-dlpack = "bee4d1dd8dc1ee4a1fd8fa6a96476c2f8b7492a3" -SRCREV_neo-ai-tvm-halideir = "e4a4c02764d37c9c3db0d64c4996651a3ef9513c" -SRCREV_neo-ai-treelite = "0972ce97687b4a1fb1262fad56232e7cc61116eb" -SRCREV_neo-ai-treelite-dmlc-core = "4d49691f1a9d944c3b0aa5e63f1db3cad1f941f8" -SRCREV_neo-ai-treelite-fmt = "135ab5cf71ed731fc9fa0653051e7d4884a3652f" - -S = "${WORKDIR}/git" - -inherit setuptools3 cmake python3native - -# Set B so that DLR Python installation can find the library -B = "${S}/build" - -do_install() { - # This does not do anything - #cmake_do_install - - install -d ${D}${includedir}/dlr_tflite - install -m 0644 ${S}/include/*.h ${D}${includedir} - install -m 0644 ${S}/include/dlr_tflite/*.h ${D}${includedir}/dlr_tflite - - # Install DLR Python binding - cd ${S}/python - distutils3_do_install +SRCREV_neo-ai-dlr = "40394be2e39eaa6248f9bf0a1143692083c0e3d2" +SRCREV_neo-ai-tvm = "11f0a9d2349b94a733aae1c8bd652e6055f4b185" +SRCREV_neo-ai-tvm-dmlc-core = "ca9f9329654dbd42f06988276c6f74eb8bdd5038" +SRCREV_neo-ai-tvm-dlpack = "b7bd45cdd8b67f4ab2502a8717f2e0926d9b4121" +SRCREV_neo-ai-tvm-rang = "cabe04d6d6b05356fa8f9741704924788f0dd762" + +SRCREV_neo-ai-treelite = "938af7867641fb09a8c93aadb66587ad9cbed9c2" +SRCREV_neo-ai-treelite-dmlc-core = "ec147925f1daccee6a33796880935f9cec8541cf" +SRCREV_neo-ai-treelite-fmt = "9f2e7edaebccf8f271cec5e855cce1223ff3e6d6" +SRCREV_neo-ai-treelite-protobuf = "6d087c256c8ab04b3a1a9832746e9c3a8d3afd79" +SRCREV_neo-ai-treelite-protobuf-benchmark = "360e66c1c4777c99402cf8cd535aa510fee16573" +SRCREV_neo-ai-treelite-protobuf-googletest = "78fdd6c00b8fa5dd67066fbb796affc87ba0e075" + +do_compile_append() { + ninja demo + ninja democv +} - # setup.py install some libs under datadir, but we don't need them, so remove. - rm ${D}${datadir}/dlr/*.so - # Install DLR library to Python import search path - install -m 0644 ${S}/build/lib/libdlr.so ${D}${PYTHON_SITEPACKAGES_DIR}/dlr +do_install_append() { - # Now install python test scripts - install -d ${D}${datadir}/dlr/tests/python/integration - install -m 0644 ${S}/tests/python/integration/*.py ${D}${datadir}/dlr/tests/python/integration - install -m 0644 ${S}/tests/python/integration/*.npy ${D}${datadir}/dlr/tests/python/integration + # Now install additional python test scripts, bash scripts and precomputed models + install -d ${D}${datadir}/dlr/demos + cp -Prf --preserve=mode,timestamps ${S}/examples/tidl/* ${D}${datadir}/dlr/demos + install -m 0755 ${B}/bin/* ${D}${datadir}/dlr/demos/. } -PACKAGES =+ "${PN}-tests" -FILES_${PN}-tests = "${datadir}/dlr/tests" -RDEPENDS_${PN}-tests += "${PN}" - -# Versioned libs are not produced -FILES_SOLIBSDEV = "" +FILES_${PN}-tests += "${datadir}/dlr/demos" diff --git a/recipes-support/neo-ai/files/0001-CMakeLists-skip-cloning-of-googletests.patch b/recipes-support/neo-ai/files/0001-CMakeLists-skip-cloning-of-googletests.patch deleted file mode 100644 index b7d3c85..0000000 --- a/recipes-support/neo-ai/files/0001-CMakeLists-skip-cloning-of-googletests.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3d9fa328598b38022c638b402d111000ce0d88c7 Mon Sep 17 00:00:00 2001 -From: Jianzhong Xu <[email protected]> -Date: Tue, 26 Nov 2019 08:53:33 -0500 -Subject: [PATCH] CMakeLists: skip cloning of googletests - -Signed-off-by: Jianzhong Xu <[email protected]> - -Upstream-status: Inappropriate (OE-specific) -* googletest should be obtained as a proper dependency - ---- - CMakeLists.txt | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 281fdb7..70a88d7 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -293,19 +293,19 @@ add_custom_target(demo DEPENDS ${DEMO_EXECS}) - - # Tests - if(NOT(ANDROID_BUILD OR AAR_BUILD)) -- include(cmake/googletest.cmake) -- fetch_googletest( -- ${PROJECT_SOURCE_DIR}/cmake -- ${PROJECT_BINARY_DIR}/googletest -- ) -- -- enable_testing() -- -- file(GLOB TEST_SRCS tests/cpp/*.cc) -- if(WITH_TENSORFLOW_LITE_LIB) -- file(GLOB TFLITE_TEST_SRCS tests/cpp/dlr_tflite/*.cc) -- list(APPEND TEST_SRCS ${TFLITE_TEST_SRCS}) -- endif() -+ #include(cmake/googletest.cmake) -+ #fetch_googletest( -+ # ${PROJECT_SOURCE_DIR}/cmake -+ # ${PROJECT_BINARY_DIR}/googletest -+ # ) -+ # -+ #enable_testing() -+ # -+ #file(GLOB TEST_SRCS tests/cpp/*.cc) -+ #if(WITH_TENSORFLOW_LITE_LIB) -+ # file(GLOB TFLITE_TEST_SRCS tests/cpp/dlr_tflite/*.cc) -+ # list(APPEND TEST_SRCS ${TFLITE_TEST_SRCS}) -+ #endif() - foreach(__srcpath ${TEST_SRCS}) - get_filename_component(__srcname ${__srcpath} NAME) - string(REPLACE ".cc" "" __execname ${__srcname}) --- -2.17.1 - -- 2.17.1 _______________________________________________ meta-arago mailing list [email protected] http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
