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.x
milestone will completedialect
ofc++ interpreter
and, so thatHS
can mixed compilation with c++ freely. python usingpybind
using some pyInit* and load module, For Release users’ mental burden, I imagine it should be like this, just giveHS
all youpython
andC++
code, and theincludes
links
for c++, then,HS
give back to you the library or executable program orjit
it. For the purpose, we already write a small tool for project dependencies managecarbin
,carbin
can easy create project with as less knowledge as possible, it doc atcarbin docs
.0.5.x
milestone will completedialect
ofVectorization optimization
on cpu base onsimd
instructions, forkumo
ann. maybe likehalide
.gpu
is optional, forHS
functional orientation toeasy business
, nothigh performance computing
0.7.x
milestone we plan to completedialect
ofrpc
networking
schedule on multi thread and fibers environments.0.9.x
is a big milestone, at this time, we aim to get throughHS
call python completely,include callpython
'spyext
,whl pakage
directly. Now, we callpython
's third party module by calling python's run time.1.x
after this milestone, we will focus on the upper layer applicationplugins
, for example Cluster scheduling, rapid service deployment, solid storage, task ofNLP
, infer ranking and etc.
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