-
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
Refactored operator set generation #69
Conversation
nopeslide
commented
Aug 12, 2020
•
edited
Loading
edited
- no single/central global operator set anymore
- kconfig friendly
- operator set generation is now independent from operator generation
- related Build system ideas #58
@alrevuelta |
Nice, could you elaborate more on why adding this First time I see |
the operator set structure is now aligned with our directory structure.
operators can be added easily, clean structure, hierarchical overview
get rid of the currently generated blob that is our operator set
we need to resolve a few pointers more and move the "is this operator part of the desired opset" into the runtime, instead of having it directly.
:)
to be honest: |
switched to NULL termination. |
You rock :D |
- split into small files - {.c,.h} for each domain, operator & version - preparation for selection of subsets via preprocessor
89d557b
to
c3c1c48
Compare
@alrevuelta as a reminder: |
one thing I wanted to do was to generate the whole onnx operator set and use kconfig to choose which are included in the build process (aka are implemented). |
0f58e8c
to
2fa745e
Compare
I moved the |
2fa745e
to
8e7ac6a
Compare
Really looking forward to see kconfig in action. Hope that #57 and this PR doesn't add much stuff on top and we can have a reasonable binary when using very few operators.
I would say that generating the whole onnx operator set and all the headers should wait until we implement few more operators and we polish the generation process. I don't want to generate everything now, then change some stuff in the generator script and then have to regenerate everything again. So what I suggest is.
What do you think? |
I don't think this will add up, since it's only a few pointers, but I'll let the numbers speak. $ ls -sh build/connxr
1.7M build/connxr
$ strip build/connxr
$ ls -sh build/connxr
144K build/connxr with prepare/execute split and recursive sets: $ ls -sh build/connxr
2.1M build/connxr
$ strip build/connxr
$ ls -sh build/connxr
144K build/connxr hope this removes any doubt from your side :)
the idea was we do this once (for a domain with implemented operators) and then we only need to regenerate the operator set when onnx updates. but this will only be relevant (and possible) when kconfig is working.
on it :>
would be next on my list
I like the way the generator is moving: from necessary to a "simple" templating tool.
this PR decouples the operator set generation from the actual operators: as long as we don't touch the operator set structure, we are free to do anything with the operators. |