-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build system ideas #58
Comments
@robinvanemden come out of the shadows, you emoji guerrilla. |
Hi @nopeslide! I am currently finishing another project, which is keeping me rather busy (ergo the emoji). But for my next project, I need to convert ONNX (including the ML ops) to C99. So if cONNXr didn't exist, I would have had to invent it 😃 I hope to be able to contribute more actively soon! |
funny story, it's the same reason I started working on connxr. I need a simple framework to integrate it into simulations, especially the ML operators. I also had the options to start from scratch, but found connxr while going through all github onnx projects :D |
Great that you find it useful :D
We talked a bit about the role of Then, on the other side we can have the building system that you are referring to. In my opinion this building system should take the following inputs:
All previous inputs are just an idea, but I think it would be good to think about them. Maybe some more are needed. Regarding KConfig, nothing against and I have never used. If we can benefit from it of course you can use it, but can't we use some other kind of tool? Don't think that we need this graphical UI menus. Maybe some kind of configurable Makefile would be sufficient. Or Python generating a Makefile? Haven't used CMake much, could it be useful here?
Is it controlling it? Its just calling the Python script that generates the files/funcions. What do you mean by controlling the build process?
How do you think we can do this? Shouldn't the venv be responsibility of the user that is using the software. Isn't it enough having the |
One more comment regarding And btw, I plan to include in |
I'm with you,
Yes at least these options, I already have a demo, will continue working on it when #57 is through.
CMake is hell imo. It is essentially make, but overloaded with so many macros, either sth happen automagically or you are searching hours inside its documentation. make on the other hand is plain stupid and you have to do a lot of stuff manually, but you can just do it. KConfig generates a list of defines for make and the preprocessor. It handles the config and puts out these two files to be integrated in the normal workflow. the Graphical ui is optional, but appreciated at some point (it show you dependencies between options and help messages).
Since we need it to generate the operator sets, it is controlling the build. You can't configure the operator set, you have to generate it. Would love to have this configuration inside the actual build system (since it's a build configuration) instead of replacing code.
I would use our |
Just thinking out loud regarding our build system.
onnx is huge and I think our build system can not scale good enough, so we need to address a few things:
onnx_generator
onnx_generator
onnx_generator
should act as template builder, not as hacky configuration toolideas
onnx_generator
onnx_generator
does not control the build process anymore__COUNTER__
macro to count included elements and set the list length rightThe text was updated successfully, but these errors were encountered: