Replies: 2 comments 5 replies
-
@LebedevRI - Thanks for sharing your thoughts above. I don't know if this discussion is where we wish to dive into taking action on some of the specifics mentioned above but @aankit-ca and I are interested in solving the "Lack of serialization" problem that you talk of above. It'll be an important step towards creating a bugpoint-like tool for Halide. @abadams @steven-johnson - are you guys aware of anyone who has already started working on this and would need help? If not, we'll start from scratch. |
Beta Was this translation helpful? Give feedback.
-
Now posted https://discourse.llvm.org/t/interest-in-a-perhaps-simplistic-image-processing-front-end/65431. |
Beta Was this translation helpful? Give feedback.
-
(please move to discussions, intentionally created as an issue to have wider notification reach)
(There's TLDR at the end of this comment.)
Dear maintainers.
As it is apparent, i'm relatively new in this repository.
While i have knew of Halide's existence since, perhaps, at least ~2016,
it wasn't until recent that i have become sufficiently unhappy with the
intricacies and horrors of the implementation detail, that,
if you hold the tools right, lead to somewhat reasonable performance.
So i've wanted things to change. While there are many possibilities,
in the end, Halide did seem like a reasonable fit to improve QoL.
Of course, it was expected that there will be hard edges that will
need some tuning, there always are some.
On the surface level of immersion into the codebase, things are nice!
However, the mode i dug, be it either during attempts at addressing
the rough edges that i've run into, or just trying to get a grasp of
the codebase, the more confused i become. You see, the problem was,
unfortunately, i had a (mis?) fortune of hacking at LLVM/clang before,
so i had a rough expectation of what'd expect to see.
Long story short, here's some of the things, in no particular order,
that rubbed me the wrong way:
Now, let's take a step back. Why am writing this? Because i care,
and i want to have something that is better and faster than plain C/etc,
but without having to have a really bad time when one has to dig
in the internals of the underlying codebase. And while the first part,
we could say, is mostly satisfied, i think we all can all agree
that the second part isn't.
I understand that the project is not exactly obscure, and is actually used
in production, and it is also a research project. But what that means is,
it's not widely used either, and the, far fewer, people that also end up
developing it, are more preoccupied in keeping it afloat than addressing
the more fundamental problems.
So to continue the original thought, the issues i have listed are addressable,
but as i have said, i'm relatively new in this repository, and don't have
any existing stake in it, or any existing halide-based code that i have to
maintain, so i'm somewhat wary of sunk cost fallacy, or specifically,
sinking it further instead of making some other choice.
To summarize, i would like to address those issues, i really would,
but i feel like we need to take a step back here, reassess the modern
state of the world, and, having learned the lessons that we have learned
getting here, start anew with a more defined architecture,
on a modern base, with a wider audience?
TLDR:
I would like to propose to discuss starting a new upstream LLVM sub-project,
which would effectively be a modern-day reboot of the existing Halide,
with almost identical front-end and results, but not so identical internals,
and wider audience/reach.
Would any of the existing Halide contributors be interested to contribute with that?
Would any of the existing Halide consumers be interested in the improvements mentioned, and in migrating over?
Now, this stand-up comedy is over. Please feel free to drive me out of the stage with your laughter. Thank you.
Roman.
Beta Was this translation helpful? Give feedback.
All reactions