2,164 karma · joined September 29, 2019
Frankly, the only thing I wish I would have realized beforehand is that you’re basically forming your young adult friend group with a bunch of people who are going to be spread out over the globe in ~5 years. That part is hard. Everything else was great.
I actually think that torch’s ShardedTensor looks very promising. Essentially you can initialize a sharded tensor from an already initialized tensor, or initialize a sharded tensor on a meta device where it’s not allocated locally and each shard gets initialized on the specified remote devices (useful for extremely large tensors)
The sharding is described by a ShardingSpec, where you can either let it shard equally sized shards across the requested devices, where the split happens along a single dimension, or you can do grid sharding along multiple dimensions. They also have a more general sharding spec that allows you to choose explicitly which indices go on which devices, if you need non uniform shards.
I think once these are implemented (along with some special cases like cloned tensors, and things like that), and once the distributed autograd engine has full support for CUDA, it should be pretty easy to start building out distributed versions of common neural net operations.
The one thing (that I haven’t thought about a ton, to be frank, and I’m sure other smarter people have :)) is that you’ll end up in cases with both a sharding spec for the weights as well as for the inputs, and what’s the best way to make sure everything matches up. Is the best way to handle that custom logic for each operation? And do you have each operation just reshard the input automatically? Seems potentially like a pretty big performance pitfall.
I’ll note that checking right now there was a commit 15 hours ago, but the last commit before that seems to be 28 days. So some work is still going on at least, thankfully :)
I hope torch has a convincing distributed tensor API coming soon. Their development on ShardedTensor seems to have slowed or stopped recently, so TF’s DTensor is definitely ahead, which is a shame. And of course TF’s ecosystem for the whole lifecycle is more mature with TFX, TF.js, etc, but torch is slowly closing those gaps, and hopefully that will continue.
Same for you. You either need to fix Google’s long term support issues from the inside, or expect more of the same.
Not that I feel particularly bad for Qualcomm here, they’re about as litigious, if not more so, than Arm.
Overall looking very promising for the next 5-10 years, and Im hoping any potential recession doesn’t cause Intel or AMD to take their foot off the pedal, or in the worst case (more likely for Intel), even scrap the product lines.
Where they fall down is on perf/watt, not raw performance. However there’s a lot of things that go into that difference, not just ISA, so I’m not sure if anyone has really decided if x86 is fundamentally less efficient, or just currently less efficient due to current design choices and constraints.
TSMC being a node or 2 ahead has basically let them hold their customers by the balls, forcing them to take price increases and extreme lead times because there’s simply nowhere else to go for the same quality and performance. It would be great if we got to a place where we had 3 foundries on roughly equal footing, especially for national security and global supply chain robustness. But also because competition is good for us mere consumers as well, of course :)
I’ll explain again that I think they can be used for bad actions, and also that they should still be released, because the benefits will outweigh the negatives. It does not hurt to admit that some things can be dangerous when used in nefarious ways. No one suggests we ban kitchen knives even though they are lethal, because their utility is massive, and outweighs their danger. In much the same way these models have extreme utility, that almost certainly outweighs their potential negatives.
We can both admit that the tools can and will be used for bad purposes, and come to the conclusion that their benefits outweigh the negatives. We would not be doing any favors to our own arguments by pretending otherwise.
Further, we have seen harm come from some of this already, there’s a pretty big online community that uses deepfakes to put people in situations they would rather not be in, the most obvious being porn.