Skip to content

gottingen/hercules

Repository files navigation

Documentation  .  文档  .  Contributors  .  Road Map

Hercules(HS) is parts of EA(elastic architecture)-Kumo Search. The roll of HS is to compile python and C/C++ code to plugin library called by the upper layer of business eg. relevance ranking in kumo search or timeliness ranking. HS is drive by HIR, another form of mlir, the inputs can be python hs c++, they will be transformed to the hir's unified AST. Finally, transform to llvm IR compile to a executable program or a C/C++ callable shared library.  

Now, HS is 0.2.x milestone. The even-numbered version is the exploration version, we try some new features. Nonetheless, the current version(0.2.x) is very usable.

  • 0.3.xmilestone will complete dialect of c++ interpreter and, so that HS can mixed compilation with c++ freely. python using pybind using some pyInit* and load module, For Release users’ mental burden, I imagine it should be like this, just give HS all you python and C++ code, and the includes links for c++, then, HS give back to you the library or executable program or jit it. For the purpose, we already write a small tool for project dependencies manage carbin, carbin can easy create project with as less knowledge as possible, it doc at carbin docs.
  • 0.5.xmilestone will complete dialect of Vectorization optimization on cpu base on simd instructions, for kumo ann. maybe like halide. gpu is optional, for HS functional orientation to easy business, not high performance computing
  • 0.7.xmilestone we plan to complete dialect of rpc networking schedule on multi thread and fibers environments.
  • 0.9.xis a big milestone, at this time, we aim to get through HS call python completely,include call python's pyext, whl pakage directly. Now, we call python's third party module by calling python's run time.
  • 1.x after this milestone, we will focus on the upper layer application plugins, for example Cluster scheduling, rapid service deployment, solid storage, task of NLP, infer ranking and etc.

the hercules work flow


pic

try jupyter in docker


run the following command to start a jupyter notebook server in docker the password is 123456

    docker run -p 8888:8888 lijippy/hs_jupyter:r0.2.7 \
    /usr/local/bin/jupyter notebook --allow-root --ip 0.0.0.0