Optimium

Minimum Requirements

ComponentSpecifications
CPUx64 architecture with 6 Cores (Intel core i5-10600 or equivalent) & above
RAM16GB & above
OSLinux (Ubuntu 22.04)
Storage20GB (Additional storage should be considered for the model-to-optimize)
FrameworkTensorFlow Lite(TF Lite)*, PyTorch. Check the supported layers below.
Python ver.3.8 ~ 3.10

*If you're using a TensorFlow model, here's a guide to convert TensorFlow model to TF Lite model.

ℹ️

The requirements above are for the host device NOT the target device. The requirements for the target device are listed in Optimium Runtime. If you’re unfamiliar with the terms target device and host device, please refer to Set up target device in remote setting.

Supported layers

Expand to view supported layers
No.LayerTensorFlowPyTorchNotes
1ADDTF: If broadcasting occurs on the batch side (0th axis), it will not work normally.
2AVERAGE_POOL_2D
3CONCATENATION
4CONV_2D
5DEPTHWISE_CONV_2D
6DEPTH_TO_SPACE
7DEQUANTIZE
8FLOOR
9FULLY_CONNECTED
10LOGISTIC
11MAX_POOL_2D
12MULTF: If broadcasting occurs on the batch side (0th axis), it will not work normally.
13RELU
14RELU6
15RESHAPE
16RESIZE_BILINEAR
17SOFTMAX
18SPACE_TO_DEPTH
19TANH
20PAD
21GATHER
22BATCH_TO_SPACE_ND
23SPACE_TO_BATCH_ND
24TRANSPOSE
25MEAN
26SUBTF: If broadcasting occurs on the batch side (0th axis), it will not work normally.
27DIVTF: If broadcasting occurs on the batch side (0th axis), it will not work normally.
28SQUEEZE
29STRIDED_SLICE
30EXP
31TOPKCurrently in maintenance
32SPLIT
33CAST
34PRELU
35MAXIMUM
36MINIMUM
37LESS
38NEG
39PAD
40GREATER
41GREATER_EQUAL
42LESS_EQUAL
43SLICE
44SIN
45TRANSPOSE_CONV
46TILE
47EQUALPyTorch: Not supported with float.
48NOT_EQUAL
49SUM
50SQRT
51RSQRT
52REDUCE_PROD
53REDUCE_MAX
54LOGICAL_OR
55LOGICAL_AND
56REDUCE_MIN
57FLOOR_DIV
58SQUARE
59ZEROS_LIKE
60FILL
61FLOOR_MOD
62RESIZE_NEAREST_NEIGHBOR
63LEAKY_RELU
64ABS
65CEIL
66GATHER_NDPyTorch does not support GATHER_ND.
67COS
68ELU
69ROUND
70HARD_SWISH
71HARDSIGMOID
72SWISH
73BATCHNORM_2D
74ADAPTIVE_AVG_POOL_2DTF does not support ADAPTIVEAVGPOOL2D. PyTorch: For kernel sizes that are not too large, normal operation is expected.
75ADAPTIVE_MAX_POOL_2DTF does not support ADAPTIVEMAXPOOL2D . PyTorch: For kernel sizes that are not too large, normal operation is expected.
76CUMSUM
77INTERPOLATE
78LINEAR
79LOG
80MAX
81MIN
82ARG_MAXPyTorch: Only Support if the 'dim' argument is explicitly specified as an int type.
83LOG
84FLOOR
85BATCHMATMUL
86ARG_MIN

Before you start

Get License Key

You need to get a license key to activate Optimium.

📩 Check your e-mail

You'll receive an e-mail from ENERZAi.

Please double check your junk mail box if you didn't receive any message. If it's still not there, please contact [email protected].

To set up the Optimium environment, you can either 1) install the package locally or 2) use a Docker image. This page focus on installing the package locally, so please refer to Quickstart page if you want to know more about leveraging the Docker image.

Install Optimium SDK

1. Download Optimium SDK

Click the URL provided within our e-mail. It will lead you to a shared Google Drive folder as below.

Download Optimium_SDK_v1.2.0.zip from Google Drive. Use unzip command or file explorer to extract files from zip file.

~$ unzip Optimium_SDK.zip

*Note that each subdirectory inoptimium contains identical wheel packages, but for different Python versions.

~$ unzip Optimium_SDK.zip
~$ tree Optimium_SDK
~/Optimium_SDK/
    ├── install_requirements.sh
    ├── setup.sh
    ├── optimium
    |    ├── install_optimium.sh
    |    ├── python3.8
    |    |        ├── optimium-1.2.0-cp38-cp38-linux_x86_64.whl
    |    |        ├── zaiConverter-2.1.2-cp38-cp38-linux_x86_64.whl
    |    |        ├── OpMeta-0.1-cp38-cp38-linux_x86_64.whl
    |    ├── python3.9
    |    └── python3.10
    ├── nadya
    |    └── nadya_0.3.9_amd64.deb
    └── runtime
         ├── install_runtime.sh
         ├── runtime-docs/
         └── runtime/

2. Install Optimium @Host PC

Install dependency packages

Before installing Optimium, please install the dependency packages by running install_requirements.sh.

Note that this requiressudo permission, therefore, ask your administrator if you don't have permission.

~$ unzip Optimium_SDK.zip
~$ cd Optimium_SDK
~$ chmod +x install_requirements.sh
~$ sudo ./install_requirements.sh

Recommended: Install using script

To run Optimium, you need to install packages in Optimium_SDK/optimium and Optimium_SDK/nadya.

You can simply run setup.shto install all requirements (it will automatically recognize your python version).

~$ cd Optimium_SDK
~$ chmod +x setup.sh
~$ ./setup.sh

Optional: Install components individually

You can install each package individually if you only want to install a specific component.

*Please note that you need to install optimium package wheel file that matches your python version

~$ cd Optimium_SDK
~$ chmod +x install_requirements.sh
~$ sudo ./install_requirements.sh
~$
~$ chmod +x optimium/install_optimium.sh
~$ ./optmium/install_optimium.sh
~$
~$ pip3 install -f "./runtime/python" optimium-runtime[all]
ℹ️

Optimium is provided as a Python package and supports Python versions 3.8 to 3.10. If your local environment doesn’t include a supported Python version, please use a virtual environment such as Docker, Anaconda, or Virtualenv, etc.