Rendered at 01:39:14 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
fouronnes3 18 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 8 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.
jamessb 16 hours ago [-]
Rather than forking PyTorch (which has issues like continually needing updates), could you create a set of linter rules instead?
rhdunn 17 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 15 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 11 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?
ternaus 16 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 12 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:
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.
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 12 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 14 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 14 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 11 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 9 hours ago [-]
[dead]
jszymborski 9 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 14 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.
t-vi 12 hours ago [-]
Not sure about the link, the official landscape URL seems to be this (same data probably):
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
[1] https://github.com/deepinv/deepinv
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.
https://landscape.pytorch.org/