diff options
Diffstat (limited to 'infra/debian')
38 files changed, 1473 insertions, 0 deletions
diff --git a/infra/debian/compiler/changelog b/infra/debian/compiler/changelog new file mode 100644 index 000000000..c4d358481 --- /dev/null +++ b/infra/debian/compiler/changelog @@ -0,0 +1,113 @@ +one (1.24.0) bionic; urgency=medium + + * Introduce _one-import-onnx_ extension interface + * _onecc_ supports profiling of multiple backends with a single cfg file + * Enable more Quantize operator: FloorMod, Squeeze + * _visq_ supports multi-out nodes + * _onecc_ introduces `dynamic_batch_to_single_batch option` option. + + -- seongwoo <seongwoo@sw> Thu, 18 Jul 2023 14:10:22 +0900 + +one (1.23.0) bionic; urgency=medium + + * Support more Op(s): GeLU + * Support more option(s): `--fuse-gelu` + * Support multiple backends compilation with a single configuration file + * Upgrade Circle schema to 0.5 + + -- seongwoo <seongwoo@sw> Thu, 18 May 2023 19:10:21 +0900 + +one (1.22.0) bionic; urgency=medium + + * Introduce new optimization options: `unroll_unidirseqlstm`, `forward_transpose_op`, `fold_fully_connected`, `fuse_prelu` + * Support more Ops for fake quantization: `Depth2Space`, `Space2Depth`, `Pack`, `Unpack`, `Abs` + * Support more Ops for quantization: `Abs`, `ReduceProd` + * Introduce _visq_ tool for quantization error visualization + * Introduce _Environment_ section into configuration file + * Improve speed of `convert_nchw_to_nhwc` option + * Support `Add`, `Mul` of index-type (int32, int64) tensors in _one-quantize_ + * Support ubuntu 20.04 + + -- seongwoo <mhs4670go@naver.com> Fri, 24 Mar 2023 13:58:16 +0900 + +one (1.21.0) bionic; urgency=medium + + * Support unrolling of LSTM and RNN Ops in `one-import-onnx` tool + * Introduced new tools `one-infer`, `circle-operator`, `circle-interpreter` + * Introduced `Workflow`(WIP) in `one-cmds` + * New option `quant_config` in `one-quantize` + * New option `fake_quantize` in `one-quantize` + * More Ops supported: Densify + * More Ops for quantization: ReduceMax + * More Ops for mixed-precision quantization (MPQ): LeakyRelu, Neg, Relu6, Squeeze + * More Ops for `convert_nchw_to_nhwc` option: LogSoftmax, ReduceMax, SplitV, Softmax + * New optimization options in `one-optimize`: `replace_non_const_fc_with_bmm`, `resolve_customop_splitv`, `fold_densify` + * Improved reshape elimination in `convert_nchw_to_nhwc` option. + * Support fusion of Channel-wise Add + Relu with TConv + * Support negative axis in ArgMin/Max + * Show errors for unrecognized options in `one-optimize` + * Fix shape inference for `StridedSlice` + * Fix FuseBatchNormWithTConvPass to support TConv with bias + * Deprecate `--O1` option in `circle2circle` + * Support gcc-11 + * Support limited Float16 for kernels constants with dequantization to Float32 + + -- seongwoo <mhs4670go@naver.com> Wed, 06 Sep 2022 12:00:00 +0900 + +one (1.20.0) bionic; urgency=medium + + * luci-interpreter supports multiple kernels with PAL layer including Cortext-M + * luci-interpreter supports integer tensor for partly kernels + * luci import support constant without coping to reduce memory for luci-interpreter + * Reduce duplicate codes to package released modules + * Limited support for ONNX LSTM/RNN unrolling while importing + * Limited support for ARM32 cross build + * Support new operator: SVDF + * New virtual CircleVariable to support tensor with variable + * Support quantization of BatchMatMul Op + * Support mixed(UINT8 + INT16) quantization + * Support backward propagation of quantization parameters + * Upgrade default python to version 3.8 + * Support TensorFlow 2.8.0, ONNX-TF 1.10.0, ONNX 1.11.0 + * Upgrade circle schema to follow tflite schema v3b + * Refactor to mio-tflite280, mio-circle04 with version and helpers methods + * Use one flatbuffers 2.0 version + * Drop support for TensorFlow 1.x + * Fix for several bugs, performance enhancements, and typos + + -- seongwoo <mhs4670go@naver.com> Tue, 26 Apr 2022 12:00:00 +0900 + +one (1.19.0) bionic; urgency=medium + + * `circle-quantizer` supports input/output type option + * Introduce configuration file for optimization options + + -- seongwoo <mhs4670go@naver.com> Wed, 10 Nov 2021 15:53:39 +0900 + +one (1.18.0) bionic; urgency=medium + + * More optimization pass + + -- seongwoo <mhs4670go@naver.com> Fri, 15 Oct 2021 15:23:20 +0900 + +one (1.17.0) bionic; urgency=medium + + * More optimization pass + * Add new InstanceNorm pattern in `FuseInstanceNormPass` + * Add verbose option + * Introduce `onecc` driver to `one-cmds` + * Introduce `one-profile` driver to `one-cmds` + + -- seongwoo <mhs4670go@naver.com> Fri, 20 Aug 2021 17:50:20 +0900 + +one (1.16.1) bionic; urgency=medium + + * Extends the point where `one-codegen` finds backends. + + -- seongwoo chae <mhs4670go@naver.com> Wed, 26 May 2021 18:06:53 +0900 + +one (1.16.0) bionic; urgency=low + + * Initial release. + + -- seongwoo chae <mhs4670go@naver.com> Mon, 26 Apr 2021 14:34:57 +0900 diff --git a/infra/debian/compiler/compat b/infra/debian/compiler/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/infra/debian/compiler/compat @@ -0,0 +1 @@ +9 diff --git a/infra/debian/compiler/control b/infra/debian/compiler/control new file mode 100644 index 000000000..b3a3c1bf7 --- /dev/null +++ b/infra/debian/compiler/control @@ -0,0 +1,25 @@ +Source: one +Section: devel +Priority: extra +Maintainer: Neural Network Acceleration Solution Developers <nnfw@samsung.com> +Build-Depends: cmake, debhelper (>=9), dh-python, python3-all, python3.8, python3.8-venv +Standards-Version: 3.9.8 +Homepage: https://github.com/Samsung/ONE + +Package: one-compiler +Architecture: amd64 +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends}, python3-venv, python3-pip, python3.8, python3.8-venv +Description: On-device Neural Engine compiler package + +Package: one-compiler-dev +Architecture: amd64 +Multi-Arch: same +Depends: one-compiler, ${shlibs:Depends}, ${misc:Depends} +Description: one-compiler development package + +Package: one-compiler-test +Architecture: amd64 +Multi-Arch: same +Depends: one-compiler, ${shlibs:Depends}, ${misc:Depends} +Description: one-compiler test package diff --git a/infra/debian/compiler/copyright b/infra/debian/compiler/copyright new file mode 100644 index 000000000..bb64695a4 --- /dev/null +++ b/infra/debian/compiler/copyright @@ -0,0 +1,3 @@ +Files: * +License: Proprietary +Copyright (c) <2018> <Samsung Electronics Co.,Ltd.> diff --git a/infra/debian/compiler/docs/one-build.1 b/infra/debian/compiler/docs/one-build.1 new file mode 100644 index 000000000..672d39f7f --- /dev/null +++ b/infra/debian/compiler/docs/one-build.1 @@ -0,0 +1,96 @@ +.TH ONE-BUILD "1" "August 2021" "one-build version 1.17.0" "User Commands" +.SH NAME +one-build \- run ONE drivers +.SH DESCRIPTION +usage: one\-build [\-h] [\-v] [\-V] [\-C CONFIG] +.PP +\fBone\-build\fR is a command line tool that runs ONE drivers in customized order. +.SS "Configuration file:" +\fBone\-build\fR takes input as a configuration file that supports ini format. +A configuration file consists of sections, each led by a [section] header. +Each section is the ONE driver you want to run, and consists of commands in a key/value combination to pass to the driver. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.SH EXAMPLES +Before you run \fBone\-build\fR, you must write a configuration file. +.PP +$ cat one-build.template.cfg +.PP +[one-build] +.br +one-import-tf=True +.br +one-import-tflite=False +.br +one-import-bcq=False +.br +one-import-onnx=False +.br +one-optimize=True +.br +one-quantize=False +.br +one-pack=True +.br +one-codegen=False +.PP +[one-import-tf] +.br +input_path=/path/to/inception_v3.pb +.br +output_path=inception_v3.circle +.br +input_arrays=input +.br +input_shapes=1,299,299,3 +.br +output_arrays=InceptionV3/Predictions/Reshape_1 +.br +converter_version=v1 +.br +model_format=graph_def +.PP +[one-optimize] +.br +input_path=inception_v3.circle +.br +output_path=inception_v3.opt.circle +.br +generate_profile_data=False +.PP +[one-pack] +.br +input_path=inception_v3.opt.circle +.br +output_path=inception_v3_pack +.PP +\fBone\-build\fR section decides whether to use each driver or not. +If the value is False, even if the corresponding section exists, the driver won't be executed. +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-build +is maintained as a Texinfo manual. If the +.B info +and +.B one-build +programs are properly installed at your site, the command +.IP +.B info one-build +.PP +should give you access to the complete manual. + diff --git a/infra/debian/compiler/docs/one-codegen.1 b/infra/debian/compiler/docs/one-codegen.1 new file mode 100644 index 000000000..b5296a018 --- /dev/null +++ b/infra/debian/compiler/docs/one-codegen.1 @@ -0,0 +1,39 @@ +.TH ONE-CODEGEN "1" "August 2021" "one-codegen version 1.17.0" "User Commands" +.SH NAME +one-codegen \- geneate codes +.SH DESCRIPTION +usage: one\-codegen [\-h] [\-v] [\-C CONFIG] [\-b BACKEND] [\-\-] [COMMANDS FOR BACKEND] +.PP +\fBone\-codegen\fR is a command line tool for code generation. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-b\fR BACKEND, \fB\-\-backend\fR BACKEND +backend name to use +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-codegen +is maintained as a Texinfo manual. If the +.B info +and +.B one-codegen +programs are properly installed at your site, the command +.IP +.B info one-codegen +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-import-bcq.1 b/infra/debian/compiler/docs/one-import-bcq.1 new file mode 100644 index 000000000..b8a85cee4 --- /dev/null +++ b/infra/debian/compiler/docs/one-import-bcq.1 @@ -0,0 +1,61 @@ +.TH ONE-IMPORT-BCQ "1" "August 2021" "one-import-bcq version 1.17.0" "User Commands" +.SH NAME +one-import-bcq \- convert TensorFlow with BCQ to circle +.SH DESCRIPTION +usage: one\-import\-bcq [\-h] [\-v] [\-V] [\-C CONFIG] [\-\-v1 | \-\-v2] [\-i INPUT_PATH] +.br +[\-o OUTPUT_PATH] [\-I INPUT_ARRAYS] [\-s INPUT_SHAPES] +.br +[\-O OUTPUT_ARRAYS] +.PP +\fBone\-import\-bcq\fR is a command line tool to convert TensorFlow with BCQ to circle. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-\-v1\fR +use TensorFlow Lite Converter 1.x +.TP +\fB\-\-v2\fR +use TensorFlow Lite Converter 2.x +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.TP +\fB\-I\fR INPUT_ARRAYS, \fB\-\-input_arrays\fR INPUT_ARRAYS +names of the input arrays, comma\-separated +.TP +\fB\-s\fR INPUT_SHAPES, \fB\-\-input_shapes\fR INPUT_SHAPES +shapes corresponding to \fB\-\-input_arrays\fR, colon\-separated (ex:"1,4,4,3:1,20,20,3") +.TP +\fB\-O\fR OUTPUT_ARRAYS, \fB\-\-output_arrays\fR OUTPUT_ARRAYS +names of the output arrays, comma\-separated +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-import-bcq +is maintained as a Texinfo manual. If the +.B info +and +.B one-import-bcq +programs are properly installed at your site, the command +.IP +.B info one-import-bcq +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-import-onnx.1 b/infra/debian/compiler/docs/one-import-onnx.1 new file mode 100644 index 000000000..1953544dc --- /dev/null +++ b/infra/debian/compiler/docs/one-import-onnx.1 @@ -0,0 +1,63 @@ +.TH ONE-IMPORT-ONNX "1" "August 2021" "one-import-onnx version 1.17.0" "User Commands" +.SH NAME +one-import-onnx \- convert ONNX to circle +.SH DESCRIPTION +usage: one\-import\-onnx [\-h] [\-v] [\-V] [\-C CONFIG] [\-i INPUT_PATH] +.br +[\-o OUTPUT_PATH] [\-I INPUT_ARRAYS] [\-O OUTPUT_ARRAYS] +.br +[\-\-model_format MODEL_FORMAT] +.br +[\-\-converter_version CONVERTER_VERSION] +.br +[\-\-save_intermediate] +.PP +\fBone\-import\-onnx\fR is a command line tool to convert ONNX to circle. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-\-save_intermediate\fR +Save intermediate files to output folder +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.TP +\fB\-I\fR INPUT_ARRAYS, \fB\-\-input_arrays\fR INPUT_ARRAYS +names of the input arrays, comma\-separated +.TP +\fB\-O\fR OUTPUT_ARRAYS, \fB\-\-output_arrays\fR OUTPUT_ARRAYS +names of the output arrays, comma\-separated +.HP +\fB\-\-model_format\fR MODEL_FORMAT +.HP +\fB\-\-converter_version\fR CONVERTER_VERSION +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-import-onnx +is maintained as a Texinfo manual. If the +.B info +and +.B one-import-onnx +programs are properly installed at your site, the command +.IP +.B info one-import-onnx +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-import-tf.1 b/infra/debian/compiler/docs/one-import-tf.1 new file mode 100644 index 000000000..9f05a888f --- /dev/null +++ b/infra/debian/compiler/docs/one-import-tf.1 @@ -0,0 +1,77 @@ +.TH ONE-IMPORT-TF "1" "August 2021" "one-import-tf version 1.17.0" "User Commands" +.SH NAME +one-import-tf \- convert TensorFlow to circle +.SH DESCRIPTION +usage: one\-import\-tf [\-h] [\-v] [\-V] [\-C CONFIG] [\-\-v1 | \-\-v2] +.br +[\-\-graph_def | \-\-saved_model | \-\-keras_model] +.br +[\-i INPUT_PATH] [\-o OUTPUT_PATH] [\-I INPUT_ARRAYS] +.br +[\-s INPUT_SHAPES] [\-O OUTPUT_ARRAYS] +.br +[\-\-save_intermediate] +.PP +\fBone\-import\-tf\fR is a command line tool to convert TensorFlow model to circle. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-\-save_intermediate\fR +Save intermediate files to output folder +.TP +\fB\-\-v1\fR +use TensorFlow Lite Converter 1.x +.TP +\fB\-\-v2\fR +use TensorFlow Lite Converter 2.x +.TP +\fB\-\-graph_def\fR +use graph def file(default) +.TP +\fB\-\-saved_model\fR +use saved model +.TP +\fB\-\-keras_model\fR +use keras model +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.TP +\fB\-I\fR INPUT_ARRAYS, \fB\-\-input_arrays\fR INPUT_ARRAYS +names of the input arrays, comma\-separated +.TP +\fB\-s\fR INPUT_SHAPES, \fB\-\-input_shapes\fR INPUT_SHAPES +shapes corresponding to \fB\-\-input_arrays\fR, colon\-separated (ex:"1,4,4,3:1,20,20,3") +.TP +\fB\-O\fR OUTPUT_ARRAYS, \fB\-\-output_arrays\fR OUTPUT_ARRAYS +names of the output arrays, comma\-separated +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-import-tf +is maintained as a Texinfo manual. If the +.B info +and +.B one-import-tf +programs are properly installed at your site, the command +.IP +.B info one-import-tf +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-import-tflite.1 b/infra/debian/compiler/docs/one-import-tflite.1 new file mode 100644 index 000000000..ef63146ac --- /dev/null +++ b/infra/debian/compiler/docs/one-import-tflite.1 @@ -0,0 +1,44 @@ +.TH ONE-IMPORT-TFLITE "1" "August 2021" "one-import-tflite version 1.17.0" "User Commands" +.SH NAME +one-import-tflite \- convert TensorFlow lite to circle +.SH DESCRIPTION +usage: one\-import\-tflite [\-h] [\-v] [\-V] [\-C CONFIG] [\-i INPUT_PATH] +.br +[\-o OUTPUT_PATH] +.PP +\fBone\-import\-tflite\fR is a command line tool to convert TensorFlow lite to circle. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-import-tflite +is maintained as a Texinfo manual. If the +.B info +and +.B one-import-tflite +programs are properly installed at your site, the command +.IP +.B info one-import-tflite +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-import.1 b/infra/debian/compiler/docs/one-import.1 new file mode 100644 index 000000000..674e9ada3 --- /dev/null +++ b/infra/debian/compiler/docs/one-import.1 @@ -0,0 +1,35 @@ +.TH ONE-IMPORT "1" "August 2021" "one-import version 1.17.0" "User Commands" +.SH NAME +one-import \- convert various format to circle +.SH SYNOPSIS +usage: one\-import [\-h] [\-C CONFIG] [\-v] driver +.SH DESCRIPTION +\fBone\-import\fR is a command line tool to convert various format to circle. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fBdriver\fR driver name to run (supported: tf, tflite, bcq, onnx) +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-import +is maintained as a Texinfo manual. If the +.B info +and +.B one-import +programs are properly installed at your site, the command +.IP +.B info one-import +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-infer.1 b/infra/debian/compiler/docs/one-infer.1 new file mode 100644 index 000000000..a1bafbb12 --- /dev/null +++ b/infra/debian/compiler/docs/one-infer.1 @@ -0,0 +1,46 @@ +.TH ONE-INFER "1" "July 2022" "one-infer version 1.21.0" "User Commands" +.SH NAME +one-infer \- manual page for one-infer version 1.21.0 +.SH DESCRIPTION +usage: one\-infer [\-h] [\-v] [\-C CONFIG] [\-d DRIVER | \fB\-b\fR BACKEND] [\-\-post\-process POST_PROCESS] [\-\-] [COMMANDS FOR BACKEND DRIVER] +.PP +command line tool to infer model +.SS "optional arguments:" +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-d\fR DRIVER, \fB\-\-driver\fR DRIVER +backend inference driver name to execute +.TP +\fB\-b\fR BACKEND, \fB\-\-backend\fR BACKEND +backend name to use +.TP +\fB\-\-post\-process\fR POST_PROCESS +post processing script to convert I/O data to standard +format +.SH COPYRIGHT +Copyright \(co 2020\-2022 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-infer +is maintained as a Texinfo manual. If the +.B info +and +.B one-infer +programs are properly installed at your site, the command +.IP +.B info one-infer +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-optimize.1 b/infra/debian/compiler/docs/one-optimize.1 new file mode 100644 index 000000000..58b2c60bd --- /dev/null +++ b/infra/debian/compiler/docs/one-optimize.1 @@ -0,0 +1,222 @@ +.TH ONE-OPTIMIZE "1" "August 2021" "one-optimize version 1.17.0" "User Commands" +.SH NAME +one-optimize \- optimize circle model +.SH DESCRIPTION +usage: one\-optimize [\-h] [\-v] [\-V] [\-C CONFIG] [\-p] +.br +[\-\-change_outputs CHANGE_OUTPUTS] [\-i INPUT_PATH] +.br +[\-o OUTPUT_PATH] [\-\-O1] [\-\-convert_nchw_to_nhwc] +.br +[\-\-nchw_to_nhwc_input_shape] [\-\-nchw_to_nhwc_output_shape] +.br +[\-\-fold_add_v2] [\-\-fold_cast] [\-\-fold_dequantize] +.br +[\-\-fold_sparse_to_dense] [\-\-forward_reshape_to_unaryop] +.br +[\-\-fuse_add_with_tconv] [\-\-fuse_batchnorm_with_conv] +.br +[\-\-fuse_batchnorm_with_dwconv] +.br +[\-\-fuse_batchnorm_with_tconv] [\-\-fuse_bcq] +.br +[\-\-fuse_preactivation_batchnorm] +.br +[\-\-make_batchnorm_gamma_positive] +.br +[\-\-fuse_activation_function] [\-\-fuse_instnorm] +.br +[\-\-replace_cw_mul_add_with_depthwise_conv] +.br +[\-\-remove_fakequant] [\-\-remove_quantdequant] +.br +[\-\-remove_redundant_reshape] +.br +[\-\-remove_redundant_transpose] +.br +[\-\-remove_unnecessary_reshape] +.br +[\-\-remove_unnecessary_slice] +.br +[\-\-remove_unnecessary_strided_slice] +.br +[\-\-remove_unnecessary_split] [\-\-resolve_customop_add] +.br +[\-\-resolve_customop_batchmatmul] +.br +[\-\-resolve_customop_matmul] +.br +[\-\-shuffle_weight_to_16x1float32] +.br +[\-\-substitute_pack_to_reshape] +.br +[\-\-substitute_squeeze_to_reshape] +.br +[\-\-substitute_transpose_to_reshape] +.br +[\-\-transform_min_max_to_relu6] +.br +[\-\-transform_min_relu_to_relu6] +.PP +\fBone\-optimize\fR is a command line tool to optimize circle model. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.SS "arguments for utility:" +.TP +\fB\-p\fR, \fB\-\-generate_profile_data\fR +generate profiling data +.TP +\fB\-\-change_outputs\fR CHANGE_OUTPUTS +Experimental: Change first subgraph output nodes to +CSV names +.SS "arguments for optimization:" +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.TP +\fB\-\-O1\fR +enable O1 optimization pass +.TP +\fB\-\-convert_nchw_to_nhwc\fR +Experimental: This will convert NCHW operators to NHWC +under the assumption that input model is NCHW. +.TP +\fB\-\-nchw_to_nhwc_input_shape\fR +convert the input shape of the model (argument for +convert_nchw_to_nhwc) +.TP +\fB\-\-nchw_to_nhwc_output_shape\fR +convert the output shape of the model (argument for +convert_nchw_to_nhwc) +.TP +\fB\-\-fold_add_v2\fR +fold AddV2 op with constant inputs +.TP +\fB\-\-fold_cast\fR +fold Cast op with constant input +.TP +\fB\-\-fold_dequantize\fR +fold Dequantize op +.TP +\fB\-\-fold_sparse_to_dense\fR +fold SparseToDense op +.TP +\fB\-\-forward_reshape_to_unaryop\fR +Forward Reshape op +.TP +\fB\-\-fuse_add_with_tconv\fR +fuse Add op to Transposed Convolution op +.TP +\fB\-\-fuse_batchnorm_with_conv\fR +fuse BatchNorm op to Convolution op +.TP +\fB\-\-fuse_batchnorm_with_dwconv\fR +fuse BatchNorm op to Depthwise Convolution op +.TP +\fB\-\-fuse_batchnorm_with_tconv\fR +fuse BatchNorm op to Transposed Convolution op +.TP +\fB\-\-fuse_bcq\fR +apply Binary Coded Quantization +.TP +\fB\-\-fuse_preactivation_batchnorm\fR +fuse BatchNorm operators of pre\-activations to +Convolution op +.TP +\fB\-\-make_batchnorm_gamma_positive\fR +make negative gamma of BatchNorm to a small positive +value (1e\-10). Note that this pass can change the +execution result of the model. So, use it only when +the impact is known to be acceptable. +.TP +\fB\-\-fuse_activation_function\fR +fuse Activation function to a preceding operator +.TP +\fB\-\-fuse_instnorm\fR +fuse ops to InstanceNorm operator +.TP +\fB\-\-replace_cw_mul_add_with_depthwise_conv\fR +replace channel\-wise Mul/Add with DepthwiseConv2D +.TP +\fB\-\-remove_fakequant\fR +remove FakeQuant ops +.TP +\fB\-\-remove_quantdequant\fR +remove Quantize\-Dequantize sequence +.TP +\fB\-\-remove_redundant_reshape\fR +fuse or remove subsequent Reshape ops +.TP +\fB\-\-remove_redundant_transpose\fR +fuse or remove subsequent Transpose ops +.TP +\fB\-\-remove_unnecessary_reshape\fR +remove unnecessary reshape ops +.TP +\fB\-\-remove_unnecessary_slice\fR +remove unnecessary slice ops +.TP +\fB\-\-remove_unnecessary_strided_slice\fR +remove unnecessary strided slice ops +.TP +\fB\-\-remove_unnecessary_split\fR +remove unnecessary split ops +.TP +\fB\-\-resolve_customop_add\fR +convert Custom(Add) op to Add op +.TP +\fB\-\-resolve_customop_batchmatmul\fR +convert Custom(BatchMatmul) op to BatchMatmul op +.TP +\fB\-\-resolve_customop_matmul\fR +convert Custom(Matmul) op to Matmul op +.TP +\fB\-\-shuffle_weight_to_16x1float32\fR +convert weight format of FullyConnected op to +SHUFFLED16x1FLOAT32. Note that it only converts +weights whose row is a multiple of 16 +.TP +\fB\-\-substitute_pack_to_reshape\fR +convert single input Pack op to Reshape op +.TP +\fB\-\-substitute_squeeze_to_reshape\fR +convert certain condition Squeeze to Reshape +.TP +\fB\-\-substitute_transpose_to_reshape\fR +convert certain condition Transpose to Reshape +.TP +\fB\-\-transform_min_max_to_relu6\fR +transform Minimum\-Maximum pattern to Relu6 op +.TP +\fB\-\-transform_min_relu_to_relu6\fR +transform Minimum(6)\-Relu pattern to Relu6 op +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-optimize +is maintained as a Texinfo manual. If the +.B info +and +.B one-optimize +programs are properly installed at your site, the command +.IP +.B info one-optimize +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-pack.1 b/infra/debian/compiler/docs/one-pack.1 new file mode 100644 index 000000000..dd0422146 --- /dev/null +++ b/infra/debian/compiler/docs/one-pack.1 @@ -0,0 +1,42 @@ +.TH ONE-PACK "1" "August 2021" "one-pack version 1.17.0" "User Commands" +.SH NAME +one-pack \- package circle and metadata into nnpackage +.SH DESCRIPTION +usage: one\-pack [\-h] [\-v] [\-V] [\-C CONFIG] [\-i INPUT_PATH] [\-o OUTPUT_PATH] +.PP +\fBone\-pack\fR is a command line tool to package circle and metadata into nnpackage. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-pack +is maintained as a Texinfo manual. If the +.B info +and +.B one-pack +programs are properly installed at your site, the command +.IP +.B info one-pack +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-partition.1 b/infra/debian/compiler/docs/one-partition.1 new file mode 100644 index 000000000..5b6fe933d --- /dev/null +++ b/infra/debian/compiler/docs/one-partition.1 @@ -0,0 +1,56 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. +.TH ONE-PARTITION "1" "June 2022" "one-partition version 1.21.0" "User Commands" +.SH NAME +one-partition \- manual page for one-partition version 1.21.0 +.SH DESCRIPTION +usage: one\-partition [\-h] [\-v] [\-V] [\-C CONFIG] [\-\-backends BACKENDS] +.TP +[\-\-default DEFAULT] [\-\-part_file PART_FILE] +[\-\-input_file INPUT_FILE] [\-\-work_path WORK_PATH] +.PP +command line tool to partition circle model by multiple backends +.SS "optional arguments:" +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-\-backends\fR BACKENDS +backends in CSV to use for partitioning +.TP +\fB\-\-default\fR DEFAULT +default backend to assign +.TP +\fB\-\-part_file\fR PART_FILE +partition file which provides backend to assign +.TP +\fB\-\-input_file\fR INPUT_FILE +input circle model filename +.TP +\fB\-\-work_path\fR WORK_PATH +work path of partition, input files exist and output +files are produced +.SH COPYRIGHT +Copyright \(co 2020\-2022 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-partition +is maintained as a Texinfo manual. If the +.B info +and +.B one-partition +programs are properly installed at your site, the command +.IP +.B info one-partition +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-profile.1 b/infra/debian/compiler/docs/one-profile.1 new file mode 100644 index 000000000..3952c4484 --- /dev/null +++ b/infra/debian/compiler/docs/one-profile.1 @@ -0,0 +1,39 @@ +.TH ONE-PROFILE "1" "August 2021" "one-profile version 1.17.0" "User Commands" +.SH NAME +one-profile \- profile backend model file +.SH DESCRIPTION +usage: one\-profile [\-h] [\-v] [\-V] [\-C CONFIG] [\-b BACKEND] [\-\-] [COMMANDS FOR BACKEND] +.PP +\fBone\-profile\fR is a command line tool for profiling backend model. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-b\fR BACKEND, \fB\-\-backend\fR BACKEND +backend name to use +.SH COPYRIGHT +Copyright \(co 2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-profile +is maintained as a Texinfo manual. If the +.B info +and +.B one-profile +programs are properly installed at your site, the command +.IP +.B info one-profile +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/one-quantize.1 b/infra/debian/compiler/docs/one-quantize.1 new file mode 100644 index 000000000..43c4c0321 --- /dev/null +++ b/infra/debian/compiler/docs/one-quantize.1 @@ -0,0 +1,83 @@ +.TH ONE-QUANTIZE "1" "August 2021" "one-quantize version 1.17.0" "User Commands" +.SH NAME +one-quantize \- quantize circle model +.SH DESCRIPTION +usage: one\-quantize [\-h] [\-v] [\-V] [\-C CONFIG] [\-i INPUT_PATH] [\-d INPUT_DATA] +.br +[\-f INPUT_DATA_FORMAT] [\-o OUTPUT_PATH] [\-p] +.br +[\-\-input_dtype INPUT_DTYPE] +.br +[\-\-quantized_dtype QUANTIZED_DTYPE] +.br +[\-\-granularity GRANULARITY] +.br +[\-\-min_percentile MIN_PERCENTILE] +.br +[\-\-max_percentile MAX_PERCENTILE] [\-\-mode MODE] +.PP +\fBone\-quantize\fR is a command line tool to quantize circle model. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.TP +\fB\-i\fR INPUT_PATH, \fB\-\-input_path\fR INPUT_PATH +full filepath of the input file +.TP +\fB\-d\fR INPUT_DATA, \fB\-\-input_data\fR INPUT_DATA +full filepath of the input data file. if not +specified, run with random input data. +.TP +\fB\-o\fR OUTPUT_PATH, \fB\-\-output_path\fR OUTPUT_PATH +full filepath of the output file +.TP +\fB\-p\fR, \fB\-\-generate_profile_data\fR +generate profiling data +.SS "arguments for quantization:" +.TP +\fB\-\-input_dtype\fR INPUT_DTYPE +input data type (supported: float32, default=float32) +.TP +\fB\-\-quantized_dtype\fR QUANTIZED_DTYPE +output quantized data type (supported: uint8, int16, +default=uint8) +.TP +\fB\-\-granularity\fR GRANULARITY +quantize granularity (supported: layer, channel, +default=layer) +.TP +\fB\-\-min_percentile\fR MIN_PERCENTILE +minimum percentile (0.0~100.0, default=1.0) +.TP +\fB\-\-max_percentile\fR MAX_PERCENTILE +maximum percentile (0.0~100.0, default=99.0) +.TP +\fB\-\-mode\fR MODE +record mode (supported: percentile/moving_average, +default=percentile) +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B one-quantize +is maintained as a Texinfo manual. If the +.B info +and +.B one-quantize +programs are properly installed at your site, the command +.IP +.B info one-quantize +.PP +should give you access to the complete manual. diff --git a/infra/debian/compiler/docs/onecc.1 b/infra/debian/compiler/docs/onecc.1 new file mode 100644 index 000000000..352b30a00 --- /dev/null +++ b/infra/debian/compiler/docs/onecc.1 @@ -0,0 +1,170 @@ +.\" Manpage for onecc. +.\" Contact nnfw@samsung.com to correct errors or typos. +.TH ONECC "1" "August 2021" "onecc version 1.17.0" "User Commands" +.SH NAME +onecc \- run ONE driver via several commands or configuration file +.SH SYNOPSIS +\fBonecc\fR [\-h] [\-v] [\-C CONFIG] [COMMAND <args>] +.SH DESCRIPTION +\fBonecc\fR is a command line tool to execute ONE driver via several commands or configuration file. +.SS "Configuration file:" +\fBonecc\fR takes input as a configuration file that supports ini format. +A configuration file consists of sections, each led by a [section] header. +Each section is the ONE driver you want to run, and consists of commands in a key/value combination to pass to the driver. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-v\fR, \fB\-\-version\fR +show program's version number and exit +.TP +\fB\-V\fR, \fB\-\-verbose\fR +output additional information to stdout or stderr +.TP +\fB\-C\fR CONFIG, \fB\-\-config\fR CONFIG +run with configuation file +.SS compile to circle model +.TP +\fBimport\fR +Convert given model to circle. See one\-import(1) for details. +.TP +\fBoptimize\fR +Optimize circle model. See one-optimize(1) for details. +.TP +\fBquantize\fR +Quantize circle model. See one-quantize(1) for details. +.SS package circle model +.TP +\fBpack\fR +Package circle and metadata into nnpackage. See one-pack(1) for details. +.SS run backend tools +.TP +\fBcodegen\fR +Code generation tool. See one-codegen(1) for details. +.TP +\fBprofile\fR +Profile backend model file. See one-profile(1) for details. +.SH EXAMPLES +.SS Use command line interface +.TP +\fBonecc import tf --v1 -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR \fB-I\fR \fIinput_arrays\fR \fB-s\fR \fIinput_shapes\fR \fB-O\fR \fIoutput_arrays\fR +import tf model +.TP +\fBonecc import tflite -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR +import tflite model +.TP +\fBonecc import onnx -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR +import onnx model +.TP +\fBonecc optimize -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR \fIoptimize_arguments\fR +optimize circle model +.TP +\fBonecc quantize -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR \fB-d\fR \fIinput_data\fR +quantize circle model +.TP +\fBonecc pack -i\fR \fIinput_path\fR \fB-o\fR \fIoutput_path\fR +package circle and metadata into nnpackage +.TP +\fBonecc codegen -b\fR \fIbackend\fR \fB--\fR \fIbackends_arguments\fR +generate backend code +.TP +\fBonecc profile -b\fR \fIbackend\fR \fB--\fR \fIbackends_arguments\fR +profile backend model +.PP +.SS Use configuration file +.PP +The configuration file should be written in the following format: +.IP +[onecc] +.br +one-import-tf=True +.br +one-import-tflite=False +.br +one-import-bcq=False +.br +one-import-onnx=False +.br +one-optimize=True +.br +one-quantize=True +.br +one-pack=True +.br +one-codegen=True +.br +one-profile=True +.IP +[one-import-tf] +.br +input_path=/path/to/inception_v3.pb +.br +output_path=inception_v3.circle +.br +input_arrays=input +.br +input_shapes=1,299,299,3 +.br +output_arrays=InceptionV3/Predictions/Reshape_1 +.br +converter_version=v1 +.br +model_format=graph_def +.IP +[one-optimize] +.br +input_path=inception_v3.circle +.br +output_path=inception_v3.opt.circle +.br +generate_profile_data=False +.IP +[one-quantize] +.br +input_path=inception_v3.opt.circle +.br +output_path=inception_v3.quantized.circle +.br +input_data=inception_v3_test_data.h5 +.IP +[one-pack] +.br +input_path=inception_v3.quantized.circle +.br +output_path=inception_v3_pack +.IP +[one-codegen] +.br +backend=dummy +.br +command=-o sample.out inception_v3.quantized.circle +.IP +[one-profile] +.br +backend=dummy +.br +command=sample.out +.TP +\fBonecc -C\fR \fIconfiguration file\fR +Run ONE driver according to configuration section parameter +.PP +\fBonecc\fR section decides whether to use each driver or not. +If the value is False, even if the corresponding section exists, the driver won't be executed. +.SH COPYRIGHT +Copyright \(co 2020\-2021 Samsung Electronics Co., Ltd. All Rights Reserved +Licensed under the Apache License, Version 2.0 +https://github.com/Samsung/ONE +.SH "SEE ALSO" +The full documentation for +.B onecc +is maintained as a Texinfo manual. If the +.B info +and +.B onecc +programs are properly installed at your site, the command +.IP +.B info onecc +.PP +should give you access to the complete manual. + diff --git a/infra/debian/compiler/one-compiler-dev.install b/infra/debian/compiler/one-compiler-dev.install new file mode 100644 index 000000000..47f53ad20 --- /dev/null +++ b/infra/debian/compiler/one-compiler-dev.install @@ -0,0 +1,10 @@ +# {FILES_TO_INSTALL} {DEST_DIR} +# bin +usr/bin/circledump usr/share/one/bin/ +usr/bin/circle-opselector usr/share/one/bin/ +usr/bin/circle-tensordump usr/share/one/bin/ +usr/bin/tflchef usr/share/one/bin/ +usr/bin/tflchef-file usr/share/one/bin/ +usr/bin/tflchef-reverse usr/share/one/bin/ +# include +usr/include/* usr/share/one/include/ diff --git a/infra/debian/compiler/one-compiler-dev.links b/infra/debian/compiler/one-compiler-dev.links new file mode 100644 index 000000000..89a654db9 --- /dev/null +++ b/infra/debian/compiler/one-compiler-dev.links @@ -0,0 +1,6 @@ +# bin +usr/share/one/bin/circledump usr/bin/circledump +usr/share/one/bin/circle-tensordump usr/bin/circle-tensordump +usr/share/one/bin/tflchef usr/bin/tflchef +usr/share/one/bin/tflchef-file usr/bin/tflchef-file +usr/share/one/bin/tflchef-reverse usr/bin/tflchef-reverse diff --git a/infra/debian/compiler/one-compiler-test.install b/infra/debian/compiler/one-compiler-test.install new file mode 100644 index 000000000..fb9714da0 --- /dev/null +++ b/infra/debian/compiler/one-compiler-test.install @@ -0,0 +1,5 @@ +# {FILES_TO_INSTALL} {DEST_DIR} +# bin +usr/bin/luci_eval_driver usr/share/one/bin/ +# test +usr/test/* usr/share/one/test/ diff --git a/infra/debian/compiler/one-compiler.install b/infra/debian/compiler/one-compiler.install new file mode 100644 index 000000000..700cc2d0a --- /dev/null +++ b/infra/debian/compiler/one-compiler.install @@ -0,0 +1,61 @@ +# {FILES_TO_INSTALL} {DEST_DIR} +# bin +usr/bin/circle2circle usr/share/one/bin/ +usr/bin/circle-eval-diff usr/share/one/bin/ +usr/bin/circle-interpreter usr/share/one/bin/ +usr/bin/circle-mpqsolver usr/share/one/bin/ +usr/bin/circle-operator usr/share/one/bin/ +usr/bin/circle-partitioner usr/share/one/bin/ +usr/bin/circle-quantizer usr/share/one/bin/ +usr/bin/dalgona usr/share/one/bin/ +usr/bin/generate_bcq_metadata.py usr/share/one/bin/ +usr/bin/generate_bcq_output_arrays.py usr/share/one/bin/ +usr/bin/model2nnpkg usr/share/one/bin/ +usr/bin/onecc usr/share/one/bin/ +usr/bin/onecc.template.cfg usr/share/one/bin/ +usr/bin/one-build usr/share/one/bin/ +usr/bin/one-build.template.cfg usr/share/one/bin/ +usr/bin/one-codegen usr/share/one/bin/ +usr/bin/one-import usr/share/one/bin/ +usr/bin/one-import-bcq usr/share/one/bin/ +usr/bin/one-import-onnx usr/share/one/bin/ +usr/bin/one-import-tf usr/share/one/bin/ +usr/bin/one-import-tflite usr/share/one/bin/ +usr/bin/one-infer usr/share/one/bin/ +usr/bin/one-optimize usr/share/one/bin/ +usr/bin/one-pack usr/share/one/bin/ +usr/bin/one-partition usr/share/one/bin/ +usr/bin/one-prepare-venv usr/share/one/bin/ +usr/bin/one-profile usr/share/one/bin/ +usr/bin/one-quantize usr/share/one/bin/ +usr/bin/one-version usr/share/one/bin/ +usr/bin/onelib/backends.py usr/share/one/bin/onelib/ +usr/bin/onelib/constant.py usr/share/one/bin/onelib/ +usr/bin/onelib/make_cmd.py usr/share/one/bin/onelib/ +usr/bin/onelib/CfgRunner.py usr/share/one/bin/onelib/ +usr/bin/onelib/OptionBuilder.py usr/share/one/bin/onelib/ +usr/bin/onelib/TopologicalSortHelper.py usr/share/one/bin/onelib/ +usr/bin/onelib/WorkflowRunner.py usr/share/one/bin/onelib/ +usr/bin/onelib/Command.py usr/share/one/bin/onelib/ +usr/bin/onelib/utils.py usr/share/one/bin/onelib/ +usr/bin/onelib/export_constant.py usr/share/one/bin/onelib/ +usr/bin/onnx_legalizer.py usr/share/one/bin/ +usr/bin/rawdata2hdf5 usr/share/one/bin/ +usr/bin/record-minmax usr/share/one/bin/ +usr/bin/tf2nnpkg usr/share/one/bin/ +usr/bin/tf2tfliteV2.py usr/share/one/bin/ +usr/bin/tflite2circle usr/share/one/bin/ +usr/bin/visq usr/share/one/bin/ +usr/bin/visqlib/DumpFakeQuantFM.py usr/share/one/bin/visqlib/ +usr/bin/visqlib/DumpFP32FM.py usr/share/one/bin/visqlib/ +usr/bin/visqlib/Palette.py usr/share/one/bin/visqlib/ +usr/bin/visqlib/QErrorComputer.py usr/share/one/bin/visqlib/ +usr/bin/visqlib/Util.py usr/share/one/bin/visqlib/ +usr/bin/visqlib/DotBuilder.py usr/share/one/bin/visqlib/ +usr/bin/circle/*.py usr/share/one/bin/circle/ +# lib +usr/lib/* usr/share/one/lib/ +# doc +usr/doc/* usr/share/one/doc/ +# optimization +usr/optimization/* usr/share/one/optimization/ diff --git a/infra/debian/compiler/one-compiler.links b/infra/debian/compiler/one-compiler.links new file mode 100644 index 000000000..9e464352a --- /dev/null +++ b/infra/debian/compiler/one-compiler.links @@ -0,0 +1,17 @@ +# bin +usr/share/one/bin/one-build usr/bin/one-build +usr/share/one/bin/onecc usr/bin/onecc +# lib +usr/share/one/lib/libloco.so usr/lib/libloco.so +usr/share/one/lib/libluci_env.so usr/lib/libluci_env.so +usr/share/one/lib/libluci_export.so usr/lib/libluci_export.so +usr/share/one/lib/libluci_import.so usr/lib/libluci_import.so +usr/share/one/lib/libluci_interpreter.so usr/lib/libluci_interpreter.so +usr/share/one/lib/libluci_lang.so usr/lib/libluci_lang.so +usr/share/one/lib/libluci_logex.so usr/lib/libluci_logex.so +usr/share/one/lib/libluci_log.so usr/lib/libluci_log.so +usr/share/one/lib/libluci_partition.so usr/lib/libluci_partition.so +usr/share/one/lib/libluci_pass.so usr/lib/libluci_pass.so +usr/share/one/lib/libluci_profile.so usr/lib/libluci_profile.so +usr/share/one/lib/libluci_plan.so usr/lib/libluci_plan.so +usr/share/one/lib/libluci_service.so usr/lib/libluci_service.so diff --git a/infra/debian/compiler/one-compiler.manpages b/infra/debian/compiler/one-compiler.manpages new file mode 100644 index 000000000..e0284ae4e --- /dev/null +++ b/infra/debian/compiler/one-compiler.manpages @@ -0,0 +1,14 @@ +debian/docs/one-build.1 +debian/docs/one-codegen.1 +debian/docs/one-infer.1 +debian/docs/one-import.1 +debian/docs/one-import-bcq.1 +debian/docs/one-import-onnx.1 +debian/docs/one-import-tf.1 +debian/docs/one-import-tflite.1 +debian/docs/one-optimize.1 +debian/docs/one-pack.1 +debian/docs/one-partition.1 +debian/docs/one-profile.1 +debian/docs/one-quantize.1 +debian/docs/onecc.1 diff --git a/infra/debian/compiler/postinst b/infra/debian/compiler/postinst new file mode 100644 index 000000000..d84e8e042 --- /dev/null +++ b/infra/debian/compiler/postinst @@ -0,0 +1,12 @@ +#!/bin/bash + +# https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html +# Boradly speaking, the `postinst` is called after a package is unpacked. + +set -e + +# This script is invoked as root except environmental variables, +# which causes invalid permission problem. +# e.g. When `pip` installs user packages, it proceeds based on $HOME. +# To proper installation, $HOME should be root. +su - $(whoami) -p -c '/usr/share/one/bin/one-prepare-venv' # $(whoami) = root diff --git a/infra/debian/compiler/postrm b/infra/debian/compiler/postrm new file mode 100644 index 000000000..2972f28db --- /dev/null +++ b/infra/debian/compiler/postrm @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +case "$1" in + remove|purge) + rm -rf /usr/share/one/ + ;; + upgrade) + # DO NOTHING + ;; + failed-upgrade|abort-install|abort-upgrade) + # DO NOTHING + ;; + *) + # DO NOTHING + ;; +esac diff --git a/infra/debian/compiler/rules b/infra/debian/compiler/rules new file mode 100755 index 000000000..e83680da8 --- /dev/null +++ b/infra/debian/compiler/rules @@ -0,0 +1,19 @@ +#!/usr/bin/make -f +export DH_VERBOSE = 1 +export NNAS_BUILD_PREFIX = build +export PRESET = 20230413 +export _DESTDIR = debian/tmp/usr + +%: + dh $@ + +override_dh_auto_build: + ./nnas create-package --preset $(PRESET) --prefix "$(_DESTDIR)" + +override_dh_auto_install: + cmake --build "$(NNAS_BUILD_PREFIX)/nncc" -- install + +override_dh_install: + install -T -m 755 -D "infra/packaging/res/tf2nnpkg.${PRESET}" "$(_DESTDIR)/bin/tf2nnpkg" + dh_install + diff --git a/infra/debian/compiler/source/format b/infra/debian/compiler/source/format new file mode 100644 index 000000000..89ae9db8f --- /dev/null +++ b/infra/debian/compiler/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/infra/debian/compiler/source/local-options b/infra/debian/compiler/source/local-options new file mode 100644 index 000000000..296a73032 --- /dev/null +++ b/infra/debian/compiler/source/local-options @@ -0,0 +1,2 @@ +# This is for reproducible building. Otherwise, `debuild` recognizes build artifacts as source files. +diff-ignore="build|externals" diff --git a/infra/debian/runtime/changelog b/infra/debian/runtime/changelog new file mode 100644 index 000000000..e07c50c21 --- /dev/null +++ b/infra/debian/runtime/changelog @@ -0,0 +1,38 @@ +one (1.21.0) bionic; urgency=low + + * Runtime supports to run nnpackage with two models + * Conv2D and Depthwise Conv2D supports per-channel quantization of uint8 type. + * TRIX backend supports batch execution which run in parallel with multicore + + -- Chunseok Lee <chunseok.lee@samsung.com> Tue, 06 Sep 2022 12:00:00 +0900 + +one (1.20.0) bionic; urgency=low + + * Introduce TRIX backend + * API supports new data type NNFW_TYPE_TENSOR_QUANT16_SYMM_SIGNED + + -- Chunseok Lee <chunseok.lee@samsung.com> Wed, 26 Apr 2022 12:00:00 +0900 + +one (1.19.0) bionic; urgency=low + + * Synch up version with ONE Compiler + + -- Chunseok Lee <chunseok.lee@samsung.com> Wed, 10 Nov 2021 14:23:00 +0900 + +one (1.18.0) bionic; urgency=low + + * Synch up version with ONE Compiler + + -- Chunseok Lee <chunseok.lee@samsung.com> Fri, 15 Oct 2021 15:23:00 +0900 + +one (1.17.0) bionic; urgency=low + + * New gpu_gl backend supports the following operations : Add, Convolution, Depthwise Convolution, Pooling, Reshape, Relu, Softmax + + -- Chunseok Lee <chunseok.lee@samsung.com> Fri, 20 Aug 2021 17:00:00 +0900 + +one (1.16.0) bionic; urgency=low + + * Initial release. + + -- Chunseok Lee <chunseok.lee@samsung.com> Mon, 05 Jul 2021 17:11:00 +0900 diff --git a/infra/debian/runtime/compat b/infra/debian/runtime/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/infra/debian/runtime/compat @@ -0,0 +1 @@ +9 diff --git a/infra/debian/runtime/control b/infra/debian/runtime/control new file mode 100644 index 000000000..20543baee --- /dev/null +++ b/infra/debian/runtime/control @@ -0,0 +1,19 @@ +Source: one +Section: devel +Priority: extra +Maintainer: Neural Network Acceleration Solution Developers <nnfw@samsung.com> +Build-Depends: cmake, debhelper (>=9), dh-python, python3-all +Standards-Version: 3.9.8 +Homepage: https://github.com/Samsung/ONE + +Package: nnfw +Architecture: amd64 +Multi-Arch: same +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: one-runtime package + +Package: nnfw-dev +Architecture: amd64 +Multi-Arch: same +Depends: nnfw, ${shlibs:Depends}, ${misc:Depends} +Description: one-runtime development package diff --git a/infra/debian/runtime/copyright b/infra/debian/runtime/copyright new file mode 100644 index 000000000..bb64695a4 --- /dev/null +++ b/infra/debian/runtime/copyright @@ -0,0 +1,3 @@ +Files: * +License: Proprietary +Copyright (c) <2018> <Samsung Electronics Co.,Ltd.> diff --git a/infra/debian/runtime/nnfw-dev.install b/infra/debian/runtime/nnfw-dev.install new file mode 100644 index 000000000..f246e7c24 --- /dev/null +++ b/infra/debian/runtime/nnfw-dev.install @@ -0,0 +1,4 @@ +# {FILES_TO_INSTALL} {DEST_DIR} +# include +usr/include/nnfw usr/include/ +usr/lib/pkgconfig/*.pc usr/lib/pkgconfig/ diff --git a/infra/debian/runtime/nnfw.install b/infra/debian/runtime/nnfw.install new file mode 100644 index 000000000..44be07c9c --- /dev/null +++ b/infra/debian/runtime/nnfw.install @@ -0,0 +1,3 @@ +# {FILES_TO_INSTALL} {DEST_DIR} +# lib +usr/lib/*.so usr/lib/ diff --git a/infra/debian/runtime/rules b/infra/debian/runtime/rules new file mode 100755 index 000000000..a228196e9 --- /dev/null +++ b/infra/debian/runtime/rules @@ -0,0 +1,22 @@ +#!/usr/bin/make -f +DEBVER := $(shell dpkg-parsechangelog -SVersion) +export DH_VERBOSE = 1 +export _DESTDIR = debian/tmp/ +export BUILD_TYPE=release +export OPTIONS=-DBUILD_LOGGING=0 -DBUILD_TFLITE_COMPARATOR_TEST_TOOL=0 -DBUILD_ONERT_RUN=0 -DBUILD_TFLITE_RUN=0 -DBUILD_RUNTIME_NNAPI_TEST=0 -DBUILD_TFLITE_VANILLA_RUN=0 -DBUILD_TENSORFLOW_LITE_2_8_0=0 -DBUILD_TENSORFLOW_LITE=0 +export DEBIAN_BUILD=1 +export INSTALL_PATH=debian/tmp/usr/ +%: + dh $@ + +override_dh_auto_build: + make -f Makefile.template +override_dh_auto_install: + make -f Makefile.template install +override_dh_install: + install -d debian/tmp/usr/lib/pkgconfig + sed -i 's:@libdir@:\/usr\/lib:g' ./packaging/nnfw.pc.in + sed -i 's:@includedir@:\/usr\/include:g' ./packaging/nnfw.pc.in + sed -i 's:@version@:${DEBVER}:g' ./packaging/nnfw.pc.in + install -m 0644 packaging/nnfw.pc.in -T debian/tmp/usr/lib/pkgconfig/nnfw.pc + dh_install diff --git a/infra/debian/runtime/source/format b/infra/debian/runtime/source/format new file mode 100644 index 000000000..89ae9db8f --- /dev/null +++ b/infra/debian/runtime/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/infra/debian/runtime/source/local-options b/infra/debian/runtime/source/local-options new file mode 100644 index 000000000..296a73032 --- /dev/null +++ b/infra/debian/runtime/source/local-options @@ -0,0 +1,2 @@ +# This is for reproducible building. Otherwise, `debuild` recognizes build artifacts as source files. +diff-ignore="build|externals" |