GithubHelp home page GithubHelp logo

onnc / onnc-umbrella Goto Github PK

View Code? Open in Web Editor NEW
22.0 11.0 23.0 8.56 MB

umbrella project helps you to build up onnc from scratch

License: BSD 3-Clause "New" or "Revised" License

CMake 3.65% Shell 64.82% Python 4.05% Makefile 2.83% C++ 23.80% Dockerfile 0.86%

onnc-umbrella's Introduction

ONNC Umbrella

Introduction

ONNC Umbrella is the umbrella for all ONNC projects.

Prerequisites

  1. git
  2. Autotools
  3. GNU Libtool
  4. pkg-config
  5. Protocol Buffer
  6. glog
  7. flex
  8. bison
  9. curl

Ubuntu - with Apt

apt install git automake libtool protobuf-compiler libprotoc-dev pkg-config python2.7 python2.7-dev python-pip libgoogle-glog-dev flex bison curl
pip install lit

macOS - with Homebrew

xcode-select --install
brew install git autoconf automake libtool pkg-config protobuf coreutils

Compilation Instructions

The simplest way to compile this package is:

Dance with build.sh script.

  1. Check out ONNC from the repository.

    git clone --recursive https://github.com/ONNC/onnc-umbrella.git ${ONNC}
    
  2. Type cd ${ONNC} to the directory containing the source code.

  3. Use build.sh to compile the package.

    ./build.sh [mode] [target folder]
    

The package is built at ./build-<mode>/, and installed to ./install-<mode>/. It is a staged installation if the third argument (target folder) is given. Check GNU automake's DESTDIR for more information about a staged installation at the below link.

For example, use ./build.sh dbg /opt/onnc to build the latest revision in debug mode for installation at /opt/onnc.

It will build in build-dbg, install to install-dbg, and generate a binary package named onnc-<branch name>.tar.gz.

Deployment Instructions

You can use the following instruction to install the binary package.

tar zxf onnc-master.tar.gz -C /opt

or

mkdir /opt/onnc
tar zxf onnc-master.tar.gz --strip-components 1 -C /opt/onnc

Recompile with the same arguments ./build.sh dbg /opt/onnc, or make with DESTDIR=./install-dbg to ensure the binaries are installed to the staged installation path instead of being installed directly to the target folder /opt/onnc.

cd ./build-dbg
make DESTDIR=$(pwd)/../install-dbg install

Building Mode

There are four building modes, regression mode, debugging mode, optimizing mode and normal mode. Select mode by changing the second argument.

mode description
normal (default) build with normal compilation flags
dbg build in debug mode (unittest enabled)
rgn build in debug mode (unittest enabled) with regression test
opt build in optimized mode

Target Folder

The package is configured to be installed at the target folder (PREFIX).

Directory Structure

  • README - This document
  • README.md - Same document in Markdown format
  • build.sh - The building script
  • src - The source directory of onnc project
  • external - The external librarys

Compilation Instructions (CMake)

We also provide build.cmake.sh for people love cmake. Currently, this script is experimental. It only pass deployment test on ubuntu Linux environment.

  1. Check out ONNC from the repository with --recursive flag

    git clone --recursive https://github.com/ONNC/onnc-umbrella.git ${ONNC}
    
  2. Type cd ${ONNC} to the directory containing the source code.

  3. Use build.cmake.sh to compile the package.

    ./build.cmake.sh [mode] [target folder]
    

The behavior of this script is as same as ./build.sh, but driven with CMake instead of automake.

onnc-umbrella's People

Contributors

a127a127 avatar changshengyin avatar chengchiwang avatar cthsieh avatar cycheng avatar kito-cheng avatar lubatang avatar luishsu avatar peter-chang avatar wwcai-intellif avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onnc-umbrella's Issues

Example

Do you have a simple example to show how to compile an ONNX model and run it on a target platform, e.g., x86?

How to setup and build ONNC

Hi everyone. I am just beginning for study ONNC. I want to study it. But i don't know how is install it and build it.
Please, Tell me step by step to do it.
(Ex. What I must download? and then...)
Thank for everyone help me.

build systemc failed on macpro m1 (macOS Sonoma)

/onnc-compiler/onnc-umbrella/external/systemc] configuring ...
checking build system type... arm-apple-darwin23.3.0
checking host system type... arm-apple-darwin23.3.0
checking target system type... arm-apple-darwin23.3.0
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /opt/homebrew/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking whether we are using a Clang/LLVM C++ compiler... yes
checking for gcc... g++
checking whether we are using the GNU C compiler... yes
checking whether g++ accepts -g... yes
checking for g++ option to accept ISO C89... unsupported
checking whether g++ understands -c and -o together... yes
checking dependency style of g++... gcc3
checking whether we are using a Clang/LLVM C compiler... yes
checking for ar... ar
checking the archiver (ar) interface... ar
checking dependency style of g++... gcc3
checking whether ln -s works... yes
configure: error: "sorry...architecture not supported"
[/onnc-compiler/onnc-umbrella/build-systemc] Configure autotools project - systemc failed.
Failed to execute command: '/onnc-compiler/onnc-umbrella/external/systemc/configure --prefix=/onnc-compiler/onnc-umbrella/onncroot'

[Bug][Doc] Missing dependency glog in `macOS - with Homebrew` section

I encountered the error and found the Homebrew section need to add the installation of this:

brew install glog

While the APT section already has it: libgoogle-glog-dev.

And actually for MacOSX user there is another bison version issue, which means maybe the section should be:

xcode-select --install
brew install git autoconf automake libtool pkg-config protobuf coreutils glog

# If bison is too old: (`bison -V` == 2.3)
brew install bison
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.bash_profile
export LDFLAGS="-L/usr/local/opt/bison/lib"

Build fails with Make llvmm failed

Hi,
I am trying to install ONNC, but when I run ./build.sh normal the build fails with the following error (I am posting just the last part because the error log is quite long):

/home/curzel/onnc-umbrella/external/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h:722:26: error: could not convert ‘((llvm::orc::remote::OrcRemoteTargetClient<ChannelT>*)this)->callB<llvm::orc::remote::OrcRemoteTargetRPCAPI::ReadMem>(Src, Size)’ from ‘Expected<vector<unsigned char,allocator<unsigned char>>>’ to ‘Expected<vector<char,allocator<char>>>’
     return callB<ReadMem>(Src, Size);
            ~~~~~~~~~~~~~~^~~~~~~~~~~
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/helpers.c.o
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-all.c.o
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/main.c.o
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/module.c.o
In file included from /home/curzel/onnc-umbrella/external/llvm/include/llvm/ADT/STLExtras.h:32,
                 from /home/curzel/onnc-umbrella/external/llvm/tools/lli/OrcLazyJIT.h:18,
                 from /home/curzel/onnc-umbrella/external/llvm/tools/lli/lli.cpp:16:
/home/curzel/onnc-umbrella/external/llvm/include/llvm/ADT/SmallVector.h: In instantiation of ‘void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long unsigned int>]’:
/home/curzel/onnc-umbrella/external/llvm/include/llvm/Support/Allocator.h:247:33:   required from ‘void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long unsigned int SlabSize = 4096; long unsigned int SizeThreshold = 4096; size_t = long unsigned int]’
/home/curzel/onnc-umbrella/external/llvm/include/llvm/Support/YAMLParser.h:130:42:   required from here
/home/curzel/onnc-umbrella/external/llvm/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
     memcpy(this->end(), &Elt, sizeof(T));
     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /home/curzel/onnc-umbrella/external/llvm/include/llvm/ADT/STLExtras.h:20,
                 from /home/curzel/onnc-umbrella/external/llvm/tools/lli/OrcLazyJIT.h:18,
                 from /home/curzel/onnc-umbrella/external/llvm/tools/lli/lli.cpp:16:
/usr/include/c++/8/bits/stl_pair.h:208:12: note: ‘struct std::pair<void*, long unsigned int>’ declared here
     struct pair
            ^~~~
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/metadata.c.o
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/object.c.o
[ 95%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/targets.c.o
[ 95%] Linking CXX executable ../../bin/llvm-c-test
[ 95%] Built target llvm-c-test
Scanning dependencies of target llvm-cxxdump
[ 95%] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o
make[2]: *** [tools/lli/CMakeFiles/lli.dir/build.make:63: tools/lli/CMakeFiles/lli.dir/lli.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:9413: tools/lli/CMakeFiles/lli.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 95%] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o
[ 95%] Linking CXX executable ../../bin/llvm-cxxdump
[ 95%] Built target llvm-cxxdump
make: *** [Makefile:152: all] Error 2
[/home/curzel/onnc-umbrella/build-llvm] Make llvm failed.
Failed to execute command: 'make -j2 all install'

All the necessary packages should already be installed, let me know if you need additional informtion.

Make onnc failed. make[1]: *** [JSON/JsonParser.cpp] Error 1

I followed the steps in Mac OS
./build.sh normal /opt/onnc/ or ./build.sh dbg /Users/jason_jiang/project/build/

However, both come up with this problem

/bin/sh /Users/jason_jiang/project/onnc-umbrella/src/scripts/ylwrap /Users/jason_jiang/project/onnc-umbrella/src/lib/JSON/JsonParser.ypp y.tab.c JSON/JsonParser.cpp y.tab.h echo JSON/JsonParser.cpp | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/y.output JSON/JsonParser.output -- bison -y -d /Users/jason_jiang/project/onnc-umbrella/src/lib/JSON/JsonParser.ypp:23.1-5: invalid directive:%code'
/Users/jason_jiang/project/onnc-umbrella/src/lib/JSON/JsonParser.ypp:23.7-14: syntax error, unexpected identifier
make[1]: *** [JSON/JsonParser.cpp] Error 1
make: *** [install-recursive] Error 1`

Can anybody give some help?

make j4, is building the libraries everytime Even though no source modifications. done.

Every time I issue a build command, via make -j4, even though I have not done any modifications to the files, it is rebuilding every time from the below point and is taking 20 to 30 minutes for the completion. How to fix this?


[ 0%] Built target gen_json_parser
Scanning dependencies of target libonnc_Target_Sophon_BM168x_asm__bm168x_asm_proto_dir
[ 0%] Built target libonnc_Target_Sophon_BM168x_asm__bm168x_asm_proto_dir
Scanning dependencies of target libonnc_Target_Sophon_BM168x_asm__bm168x_asm_proto
[ 0%] Generating ../../../../include/onnc/Target/Sophon/BM168x/asm/bm168x_asm.pb.h, ../../../../include/onnc/Target/Sophon/BM168x/asm/bm168x_asm.pb.cc
[ 0%] Built target libonnc_Target_Sophon_BM168x_asm__bm168x_asm_proto
Scanning dependencies of target libonnc_Target_Sophon_BM188x__common_calibration2_proto_dir
[ 0%] Built target libonnc_Target_Sophon_BM188x__common_calibration2_proto_dir
Scanning dependencies of target libonnc_Target_Sophon_BM188x__common_calibration2_proto
[ 0%] Generating ../../../include/onnc/Target/Sophon/BM188x/common_calibration2.pb.h, ../../../include/onnc/Target/Sophon/BM188x/common_calibration2.pb.cc
[ 0%] Built target libonnc_Target_Sophon_BM188x__common_calibration2_proto
Scanning dependencies of target code_gen
[ 0%] Built target code_gen
Scanning dependencies of target libonnc_Transforms_TensorSel
[ 0%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/DefaultAttributes.cpp.o
[ 0%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/Lower.cpp.o
[ 0%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/LowerRegistry.cpp.o
[ 1%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/AbsLower.cpp.o
[ 1%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/AcosLower.cpp.o
[ 1%] Building CXX object lib/Transforms/TensorSel/CMakeFiles/libonnc_Transforms_TensorSel.dir/AddLower.cpp.o

onnc not submodule and don't mention step in README.md

I got following error when I clone the repo, and I think it should add a git clone onnc src step to README.md, add it to submodule or do the clone in build script.

$ ./build.cmake.sh 
~/onnc-umbrella/build ~/onnc-umbrella
CMake Error at external/CMakeLists.txt:5 (include):
  include could not find load file:

    /home/users/kito/onnc-umbrella/external/../src/cmake/option.cmake


CMake Error at external/CMakeLists.txt:6 (include):
  include could not find load file:

    /home/users/kito/onnc-umbrella/external/../src/cmake/onnc_target.cmake


CMake Error at external/CMakeLists.txt:7 (enum_onnc_targets):
  Unknown CMake command "enum_onnc_targets".


-- Configuring incomplete, errors occurred!
See also "/home/users/kito/onnc-umbrella/build/CMakeFiles/CMakeOutput.log".
[kito@atccpl05 onnc-umbrella]$ ./build.cmake.sh 
~/onnc-umbrella/build ~/onnc-umbrella
CMake Error at external/CMakeLists.txt:5 (include):
  include could not find load file:

    /home/users/kito/onnc-umbrella/external/../src/cmake/option.cmake


CMake Error at external/CMakeLists.txt:6 (include):
  include could not find load file:

    /home/users/kito/onnc-umbrella/external/../src/cmake/onnc_target.cmake


CMake Error at external/CMakeLists.txt:7 (enum_onnc_targets):
  Unknown CMake command "enum_onnc_targets".


-- Configuring incomplete, errors occurred!
See also "/home/users/kito/onnc-umbrella/build/CMakeFiles/CMakeOutput.log".

JSON/JsonScanner.cpp is missing

I was building with command ./build.sh normal ../build-onnc-unbrella/.
The compilation failed with following message.
Please help to resolve it, thanks!

g++ -DHAVE_CONFIG_H   -I/workspace/onnc-umbrella/src/include  -I/workspace/onnc-umbrella/build-normal/include  -I/workspace/onnc-umbrella/build-normal/lib -I/workspace/onnc-umbrella/onncroot/include -I/workspace/onnc-umbrella/src/lib/Target -I/workspace/onnc-umbrella/src/lib/Target/Sophon -I/workspace/onnc-umbrella/src/lib/Target/Sophon/include -Waddress -Wchar-subscripts -Wcomment -Wformat -Wparentheses -Wreorder -Wreturn-type -Wsequence-point -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wvolatile-register-var -Wno-return-stack-address     -g -O2 -MT JSON/JsonScanner.o -MD -MP -MF $depbase.Tpo -c -o JSON/JsonScanner.o JSON/JsonScanner.cpp &&\
mv -f $depbase.Tpo $depbase.Po
g++: error: JSON/JsonScanner.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
Makefile:2277: recipe for target 'JSON/JsonScanner.o' failed
make[1]: *** [JSON/JsonScanner.o] Error 1
make[1]: Leaving directory '/workspace/onnc-umbrella/build-normal/lib'
Makefile:532: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
[/workspace/onnc-umbrella/build-normal] Make onnc failed.
Failed to execute command: 'make DESTDIR=/workspace/onnc-umbrella/install-normal install'

Command to run onnc

I have done follow and see many files in the build-MODE/tools/unittests (The direction on my computer is : onnc-umbrella/build-dbg/tools/unittests/).
Can you write to help me command to run each unittest ? I really don't know how can run it?
Thank you so much!

build llvm fail

Follow your step, and the command:
./build.sh dbg /opt/onnc

But I got the following error message:

........
[/home/walker/onnc/build-SkyPat] finishing ...
[/home/walker/onnc] building llvm ...
[/home/walker/onnc/build-llvm] creating makefiles ...
./scripts/library.sh: line 115: cmake: command not found
[/home/walker/onnc/build-llvm] Cmake project - llvm failed.
Failed to execute command: 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/walker/onnc/onncroot -DLLVM_TARGETS_TO_BUILD=host;X86;ARM;AArch64 /home/walker/onnc/external/llvm'

All onnc::onnx::Reader parse failed, even with the built-in model

Command run:

/opt/onnc/bin/unittests

[ RUN ] ONNXReaderTest.parse_file
Error: Cannot parse onnx input file ****/onnc-umbrella/src/tools/unittests/data/bvlc_alexnet/model.onnx
[ FAILED ]
****/onnc-umbrella/src/tools/unittests/ONNXReaderTest.cpp:27: fatal: failed to assert

[----------] 1 test from TensorSelTest.
[ RUN ] TensorSelTest.alexnet
Error: Cannot parse onnx input file ****/onnc-umbrella/src/tools/unittests/data/bvlc_alexnet/model.onnx
[ FAILED ]
****/onnc-umbrella/src/tools/unittests/TensorSelTest.cpp:59: fatal: failed to assert
Value of: err.isGood()
Actual: false
Expected: true
[==========] 112 tests from 18 cases ran.
[ FAILED ] 2 tests.

Make onnc failed

Follow your step:
./build.sh dbg /opt/onnc

but meet the following error message:

/bin/bash ../../libtool --tag=CXX --mode=link g++ -std=c++14 -g -O2 -o onnc main.o ONNCApp.o ONNCConfig.o -L/home/walker/onnc/onnc-master/build-dbg/lib /home/walker/onnc/onnc-master/build-dbg/lib/libonnc.a -lprotobuf -pthread -lpthread /home/walker/onnc/onnc-master/onncroot/lib/libonnx.a /home/walker/onnc/onnc-master/onncroot/lib/libonnx_proto.a -lpthread /home/walker/onnc/onnc-master/onncroot/lib/libskypat.a -lglog -lprotobuf -lpthread -lz
libtool: link: g++ -std=c++14 -g -O2 -o onnc main.o ONNCApp.o ONNCConfig.o -pthread -L/home/walker/onnc/onnc-master/build-dbg/lib /home/walker/onnc/onnc-master/build-dbg/lib/libonnc.a /home/walker/onnc/onnc-master/onncroot/lib/libonnx.a /home/walker/onnc/onnc-master/onncroot/lib/libonnx_proto.a /home/walker/onnc/onnc-master/onncroot/lib/libskypat.a -lglog -lprotobuf -lpthread -lz -pthread
/home/walker/onnc/onnc-master/build-dbg/lib/libonnc.a(BM188xBackend.o): In function onnc::Lower* onnc::LowerRegistry::emplace<onnc::MulLower>()': /home/walker/onnc/onnc-master/src/include/onnc/Transforms/TensorSel/LowerRegistry.h:60: undefined reference to onnc::MulLower::MulLower()'
collect2: error: ld returned 1 exit status
Makefile:455: recipe for target 'onnc' failed
make[2]: *** [onnc] Error 1
make[2]: Leaving directory '/home/walker/onnc/onnc-master/build-dbg/tools/onnc'
Makefile:406: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/walker/onnc/onnc-master/build-dbg/tools'
Makefile:530: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
[/home/walker/onnc/onnc-master/build-dbg] Make onnc failed.
Failed to execute command: 'make DESTDIR=/home/walker/onnc/onnc-master/install-dbg install'

onnx v4 support?

I noticed with current release (v1.0) of onnc-umbrella, tools/onnc only supports ONNX v3 format, which is supported in PyTorch v0.4 that's too darn old. New PyTorch versions such 1.0/1.2 etc. migrates to ONNX v4 already, when will you roll out the ONNX v4 support in ONNC? Thanks.

When I feed ONNC with v4 model, it complains as below:

$ ./onnc -mquadruple=nvdla ~/onnx_sample_models/ssd.onnx 
Fatal: Cannot inference shape of this onnx model, got exception from ONNX: Your model ir_version is higher than the checker's.

Build onnc fail with error "collect2: error: ld returned 1 exit status tools/onnc/CMakeFiles/onnc.dir/build.make:150: recipe for target 'tools/onnc/onnc' failed"

Hi, can anybody give some help on the onnc. I got the following error when I try to
this command ./build.sh normal nvdla ../build/

implementation.cc:(.text+0x1ad3): undefined reference to google::protobuf::internal::fixed_address_empty_string[abi:cxx11]'
collect2: error: ld returned 1 exit status
tools/onnc/CMakeFiles/onnc.dir/build.make:150: recipe for target 'tools/onnc/onnc' failed
make[2]: *** [tools/onnc/onnc] Error 1
CMakeFiles/Makefile2:1981: recipe for target 'tools/onnc/CMakeFiles/onnc.dir/all' failed
make[1]: *** [tools/onnc/CMakeFiles/onnc.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
[/home/jjsjiang/onnc-umbrella/build-normal] Make onnc failed.
Failed to execute command: 'make DESTDIR=/home/jjsjiang/onnc-umbrella/install-normal install'`

onnc compilation is not parallelized

both build.sh and build.cmake.sh can't make use of multiple processors for ONNC compilation

replacing "${MAKE} ${PARALLEL_BUILD_FLAG}" with "make -j4" will trigger multiple process for compilation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.