nnstreamer / nntrainer

NNtrainer is Software Framework for Training Neural Network Models on Devices.
Apache License 2.0
144 stars 72 forks source link

libnntrainer.so is over 4MB #1625

Closed kparichay closed 8 months ago

kparichay commented 2 years ago

libnntrainer.so on aarch64 is over 4MB. This needs investigation as this binary size is only going to grow once more backends are going to be supported.

taos-ci commented 2 years ago

:octocat: cibot: Thank you for posting issue #1625. The person in charge will reply soon.

myungjoo commented 2 years ago

Smelling fishy here:

build nntrainer/libnntrainer.so: cpp_LINKER nntrainer/d48ed23@@nntrainer@sha/ini_interpreter.cpp.o nntrainer/d48ed23@@nntrainer@sha/flatten_realizer.cpp.o nntrainer/d48ed23@@nntrainer@sha/recurrent_realizer.cpp.o nntrainer/d48ed23@@nntrainer@sha/remap_realizer.cpp.o nntrainer/d48ed23@@nntrainer@sha/tflite_interpreter.cpp.o nntrainer/d48ed23@@nntrainer@sha/tflite_opnode.cpp.o nntrainer/d48ed23@@nntrainer@sha/iteration_queue.cpp.o nntrainer/d48ed23@@nntrainer@sha/databuffer.cpp.o nntrainer/d48ed23@@nntrainer@sha/data_iteration.cpp.o nntrainer/d48ed23@@nntrainer@sha/databuffer_factory.cpp.o nntrainer/d48ed23@@nntrainer@sha/random_data_producers.cpp.o nntrainer/d48ed23@@nntrainer@sha/func_data_producer.cpp.o nntrainer/d48ed23@@nntrainer@sha/raw_file_data_producer.cpp.o nntrainer/d48ed23@@nntrainer@sha/loss_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/mse_loss_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/cross_entropy_sigmoid_loss_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/cross_entropy_softmax_loss_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/constant_derivative_loss_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/activation_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/addition_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/attention_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/concat_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/bn_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/conv2d_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/conv1d_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/fc_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/flatten_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/input_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/multiout_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/layer_node.cpp.o nntrainer/d48ed23@@nntrainer@sha/pooling2d_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/preprocess_flip_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/preprocess_translate_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/preprocess_l2norm_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/embedding.cpp.o nntrainer/d48ed23@@nntrainer@sha/rnn.cpp.o nntrainer/d48ed23@@nntrainer@sha/acti_func.cpp.o nntrainer/d48ed23@@nntrainer@sha/lstm.cpp.o nntrainer/d48ed23@@nntrainer@sha/time_dist.cpp.o nntrainer/d48ed23@@nntrainer@sha/common_properties.cpp.o nntrainer/d48ed23@@nntrainer@sha/split_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/permute_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/layer_impl.cpp.o nntrainer/d48ed23@@nntrainer@sha/gru.cpp.o nntrainer/d48ed23@@nntrainer@sha/dropout.cpp.o nntrainer/d48ed23@@nntrainer@sha/centroid_knn.cpp.o nntrainer/d48ed23@@nntrainer@sha/layer_context.cpp.o nntrainer/d48ed23@@nntrainer@sha/tflite_layer.cpp.o nntrainer/d48ed23@@nntrainer@sha/model_loader.cpp.o nntrainer/d48ed23@@nntrainer@sha/neuralnet.cpp.o nntrainer/d48ed23@@nntrainer@sha/model_common_properties.cpp.o nntrainer/d48ed23@@nntrainer@sha/dynamic_training_optimization.cpp.o nntrainer/d48ed23@@nntrainer@sha/adam.cpp.o nntrainer/d48ed23@@nntrainer@sha/optimizer_devel.cpp.o nntrainer/d48ed23@@nntrainer@sha/optimizer_impl.cpp.o nntrainer/d48ed23@@nntrainer@sha/sgd.cpp.o nntrainer/d48ed23@@nntrainer@sha/optimizer_context.cpp.o nntrainer/d48ed23@@nntrainer@sha/blas_interface.cpp.o nntrainer/d48ed23@@nntrainer@sha/lazy_tensor.cpp.o nntrainer/d48ed23@@nntrainer@sha/manager.cpp.o nntrainer/d48ed23@@nntrainer@sha/tensor.cpp.o nntrainer/d48ed23@@nntrainer@sha/tensor_dim.cpp.o nntrainer/d48ed23@@nntrainer@sha/var_grad.cpp.o nntrainer/d48ed23@@nntrainer@sha/weight.cpp.o nntrainer/d48ed23@@nntrainer@sha/basic_planner.cpp.o nntrainer/d48ed23@@nntrainer@sha/memory_pool.cpp.o nntrainer/d48ed23@@nntrainer@sha/tensor_pool.cpp.o nntrainer/d48ed23@@nntrainer@sha/optimized_v1_planner.cpp.o nntrainer/d48ed23@@nntrainer@sha/util_func.cpp.o nntrainer/d48ed23@@nntrainer@sha/profiler.cpp.o nntrainer/d48ed23@@nntrainer@sha/ini_wrapper.cpp.o nntrainer/d48ed23@@nntrainer@sha/node_exporter.cpp.o nntrainer/d48ed23@@nntrainer@sha/base_properties.cpp.o nntrainer/d48ed23@@nntrainer@sha/network_graph.cpp.o nntrainer/d48ed23@@nntrainer@sha/graph_core.cpp.o nntrainer/d48ed23@@nntrainer@sha/nntrainer_logger.cpp.o nntrainer/d48ed23@@nntrainer@sha/app_context.cpp.o | /usr/lib/x86_64-linux-gnu/libiniparser.a /usr/lib/x86_64-linux-gnu/libm.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libdl.a /lib/x86_64-linux-gnu/libdl-2.27.so /usr/lib/x86_64-linux-gnu/openblas/libblas.so /usr/lib/libtensorflow2-lite.a /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libflatbuffers.so /usr/lib/x86_64-linux-gnu/libopencv_shape.so /usr/lib/x86_64-linux-gnu/libopencv_stitching.so /usr/lib/x86_64-linux-gnu/libopencv_superres.so /usr/lib/x86_64-linux-gnu/libopencv_videostab.so /usr/lib/x86_64-linux-gnu/libopencv_aruco.so /usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so /usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so /usr/lib/x86_64-linux-gnu/libopencv_ccalib.so /usr/lib/x86_64-linux-gnu/libopencv_datasets.so /usr/lib/x86_64-linux-gnu/libopencv_dpm.so /usr/lib/x86_64-linux-gnu/libopencv_face.so /usr/lib/x86_64-linux-gnu/libopencv_freetype.so /usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so /usr/lib/x86_64-linux-gnu/libopencv_hdf.so /usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so /usr/lib/x86_64-linux-gnu/libopencv_optflow.so /usr/lib/x86_64-linux-gnu/libopencv_video.so /usr/lib/x86_64-linux-gnu/libopencv_plot.so /usr/lib/x86_64-linux-gnu/libopencv_reg.so /usr/lib/x86_64-linux-gnu/libopencv_saliency.so /usr/lib/x86_64-linux-gnu/libopencv_stereo.so /usr/lib/x86_64-linux-gnu/libopencv_structured_light.so /usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so /usr/lib/x86_64-linux-gnu/libopencv_rgbd.so /usr/lib/x86_64-linux-gnu/libopencv_viz.so /usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so /usr/lib/x86_64-linux-gnu/libopencv_text.so /usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so /usr/lib/x86_64-linux-gnu/libopencv_features2d.so /usr/lib/x86_64-linux-gnu/libopencv_flann.so /usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so /usr/lib/x86_64-linux-gnu/libopencv_ml.so /usr/lib/x86_64-linux-gnu/libopencv_xphoto.so /usr/lib/x86_64-linux-gnu/libopencv_highgui.so /usr/lib/x86_64-linux-gnu/libopencv_videoio.so /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so /usr/lib/x86_64-linux-gnu/libopencv_photo.so /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so /usr/lib/x86_64-linux-gnu/libopencv_core.so

libiniparser.a libm.a libdl.a libtensorflow2-lite.a (we may need to think about shared-lib-nizing tf2-lite in our packages)

(libtensorflow2-lite.a in x64 is > 7MB)