Rendered at 19:37:16 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
fouronnes3 12 hours ago [-]
I work on differentiable geometric optics with PyTorch. Seeing a list like this is really illustrative of the power that PyTorch provides when you start considering it like a general purpose GPU-enabled state of the art numerical optimization framework.
One thing I wonder is why no one has made a fork of PyTorch yet that removes all the API surface that doesn't produce GPU friendly code. Make dtype and device arg mandatory without defaults, remove in place operations that trigger a CPU sync, etc. This would increase confidence that written code will run on the GPU and pass torch.export() on the first try.
WhyNotHugo 2 hours ago [-]
> One thing I wonder is why no one has made a fork of PyTorch yet that […]
Try and compile the stack from source and you'll find out why nobody is making forks with small divergences.
rhdunn 11 hours ago [-]
It's useful to be able to run models/code on the CPU or split between CPU and GPU, especially for models that cannot fit into the GPU's VRAM, if you are running multiple models, or if you have training data that you need to move between CPU and GPU.
earthnail 9 hours ago [-]
All of that would be possible with the changes parent poster proposes. See the gotchas section in JAX, which is exactly these limitations:
Seems like you could write a simple source code checker program to check all of that. Making an extra library just for some (user hostile) tweaks seems like overkill.
northzen 5 hours ago [-]
Hi!
I'm curious to hear about your work geometric optics with PyTorch.
May I ask you to share some examples of something you are working on right now?
jamessb 10 hours ago [-]
Rather than forking PyTorch (which has issues like continually needing updates), could you create a set of linter rules instead?
ternaus 10 hours ago [-]
What is sad is that:
- many projects are arrived.
- It is unclear who is responsible for the updates.
I work on one of the projects in the list, need to update a link to the project, as old one is not actual anymore. And unclear how to do it => at least with respect to my project Albumentations, the landscape is outdated :(
---
Also, added the project to the Pytorch Ecosystem many years back, but if you ask me about practical value of being the part of the Ecosystem, I would not be able to tell you anything useful.
t-vi 6 hours ago [-]
We do try to check the pulse of projects there with a checklist, but I guess it started in a more uncoordinated way.
If you file an issue here, I think it would work to update things:
Interesting to see that PyTorch has become the de-facto standard after it seemed for a while that the dust had settled on Tensorflow.
I also thought that Jax would in turn take over after PyTorch but it never seemed to quite take off (still in use though from what I can tell).
trostaft 6 hours ago [-]
I'm a computational mathematician, and I've been a big proponent of JAX to all the research groups I've worked with. So far, I've converted all of them =). In particular for math, I've found JAX's design and feature set to be far more suitable. Patrick Kidger's suite of libraries also carries a lot of weight in that regard. Equinox is the center is basically everything I write in JAX.
But there are absolutely pain points. In particular, especially for weaker programmers (common in academia), it's quite easy to write bad JAX. The functional programming and stateless paradigms require a little more thinking ahead. This is particularly tough when you're doing research and you're, in real time, finding out what's ahead!
cold_harbor 8 hours ago [-]
JAX is brilliant for research but the debugging story is still rough compared to PyTorch. eager mode + native Python exceptions win for most people.
embedding-shape 8 hours ago [-]
> after it seemed for a while that the dust had settled on Tensorflow.
Did it ever? PyTorch always seemed more popular to me, unless you were around Google people, then obviously everything was Tensorflow. But like many Google projects, I never got the impression it was as ubiquitous as PyTorch out in the community outside of Google. Maybe around 2018-2019 it felt like Tensorflow would become more popular than PyTorch eventually, but it never seemed to actually happen.
DonsDiscountGas 5 hours ago [-]
I never worked at Google, and that (tensorflow dominant) was my impression from 2016-2022 or so. I'm pretty sure if you teach Google trends for awhile it's the same picture; tensorflow was way more popular than pytorch but as DL grew, pytorch grew faster (in terms of users).
crisp-snakey 3 hours ago [-]
[dead]
jszymborski 3 hours ago [-]
TF had first mover's advantage, so they felt like the incumbent for a long time, with PyTorch being the scrappy challenger.
porridgeraisin 8 hours ago [-]
The compiler based approach, with jax.cond, purity expectations, difficulty of making stateful abstractions, etc makes sense for large scale deployment, especially to purpose built accelerators like the systolic array ones (tpu, trainium) but not for being the primary framework used in the field. Imperative always wins. Side effects and state are necessary.
jeremyscanvic 11 hours ago [-]
I work on one of the projects featured in the PyTorch Ecosystem [1] and I really recommend it to anyone working on a PyTorch library. Their team is really responsive and they even offer promotion on their blog & social media.
One thing I wonder is why no one has made a fork of PyTorch yet that removes all the API surface that doesn't produce GPU friendly code. Make dtype and device arg mandatory without defaults, remove in place operations that trigger a CPU sync, etc. This would increase confidence that written code will run on the GPU and pass torch.export() on the first try.
Try and compile the stack from source and you'll find out why nobody is making forks with small divergences.
https://docs.jax.dev/en/latest/notebooks/Common_Gotchas_in_J...
I'm curious to hear about your work geometric optics with PyTorch. May I ask you to share some examples of something you are working on right now?
I work on one of the projects in the list, need to update a link to the project, as old one is not actual anymore. And unclear how to do it => at least with respect to my project Albumentations, the landscape is outdated :(
--- Also, added the project to the Pytorch Ecosystem many years back, but if you ask me about practical value of being the part of the Ecosystem, I would not be able to tell you anything useful.
If you file an issue here, I think it would work to update things:
https://github.com/pytorch-fdn/ecosystem
Submitted 3 weeks ago: https://github.com/pytorch-fdn/ecosystem/issues/67
I also thought that Jax would in turn take over after PyTorch but it never seemed to quite take off (still in use though from what I can tell).
But there are absolutely pain points. In particular, especially for weaker programmers (common in academia), it's quite easy to write bad JAX. The functional programming and stateless paradigms require a little more thinking ahead. This is particularly tough when you're doing research and you're, in real time, finding out what's ahead!
Did it ever? PyTorch always seemed more popular to me, unless you were around Google people, then obviously everything was Tensorflow. But like many Google projects, I never got the impression it was as ubiquitous as PyTorch out in the community outside of Google. Maybe around 2018-2019 it felt like Tensorflow would become more popular than PyTorch eventually, but it never seemed to actually happen.
[1] https://github.com/deepinv/deepinv
https://landscape.pytorch.org/