PyTorch Internals: Ezyang's Blog
blog.ezyang.com443 points by Anon84 8 months ago
smokel - 8 months ago
-
swyx - 8 months ago
i think the problem w the podcast format (ironic for me to say) is that it assumes a lot higher familiarity with the apis than is afforded by any visual medium including blogs-
smokel - 8 months ago
Agreed, but I'm still very happy that some people try. I'm really not that much interested in the weather or listening to idle chit-chat, and for some reason most podcasts seem to focus on that.
-
alexrigler - 8 months ago
zcbenz - 8 months ago
It is a modern and clean codebase without legacies, and I could understand most things without seeking external articles.
-
ForceBru - 8 months ago
Why is MLX Apple silicon only? Is there something fundamental that prevents it from working on x86? Are some core features only possible on Apple silicon? Or do the devs specifically refuse to port to x86? (Which is understandable, I guess)I'm asking because it seems to have nice autodiff functionality. It even supports differentiating array mutation (https://ml-explore.github.io/mlx/build/html/usage/indexing.h...), which is something JAX and Zygote.jl can't do. Instead, both have ugly tricks like `array.at[index].set` and the `Buffer` struct.
So it would be cool to have this functionality on a "regular" CPU.
-
zcbenz - 8 months ago
Most features are already supported on x86 CPUs, you can pip install mlx on Linux , and you can even use it on Windows (no official binary release yet but it is building and tests are passing). -
saagarjha - 8 months ago
I think it relies heavily on unified memory.
-
chuckledog - 8 months ago
hargun2010 - 8 months ago
aduffy - 8 months ago
-
lyeager - 8 months ago
Me too, he was great. Tried his darndest to help me understand Haskell monads. -
aostiles - 8 months ago
He was really nice in Stanford's CS 240h. He helped me better understand Safe Haskell and GHC internals.
vimgrinder - 8 months ago
-
PeterStuer - 8 months ago
No trouble reading the article. Those slides though. Make my eyes hurt :(-
vimgrinder - 8 months ago
they were constantly referred too in the text :/ impossible to skip
-
quotemstr - 8 months ago
TORCH_CHECK(self.dim() == 1)
<< "Expected dim to be a 1-D tensor "
<< "but was " << self.dim() << "-D tensor";
Turns out it's possible to write TORCH_CHECK() so that it evaluates the streaming operators only if the check fails. (Check out how glog works.)bilal2vec - 8 months ago
[1]: https://dev-discuss.pytorch.org/t/meta-pytorch-team-2025-h1-...
[2]: https://dev-discuss.pytorch.org/t/pytorch-symmetricmemory-ha...
[3]: https://dev-discuss.pytorch.org/t/where-do-the-2000-pytorch-...
[4]: https://dev-discuss.pytorch.org/t/rethinking-pytorch-fully-s...
nitrogen99 - 8 months ago
-
mlazos - 8 months ago
I used this to onboard to the PyTorch team a few years ago. It’s useful for understanding the key concepts of the framework. Torch.compile isn’t covered but the rest of it is still pretty relevant. -
kadushka - 8 months ago
I’m guessing about 80%-
sidkshatriya - 8 months ago
To understand a complex system, sometimes it better to understand a (simpler) model system. Sometimes an older version of the same system is that good model system. This is not true always but a good rule of thumb.
-
Loading comments…