9 ms·
I'm surprised by all the negativity in this thread. The need to write C++ components for models is pretty real when you need things to be fast and run on CPU. G
by Eridrus 7y ago
I'm surprised by all the negativity in this thread. The need to write C++ components for models is pretty real when you need things to be fast and run on CPU. God forbid you ever want to deploy that on some sort of accelerator, necessitating a rewrite to CUDA or whatever language that accelerator speaks.
Maybe that's too niche of a subject for people to really care about, and maybe it's going to fail now that Lattner is gone (though there still seemed to be a bunch of activity last I checked), but the problem it is trying to solve is real.
- gigatexal 7y agoPerhaps it could be this: if my value comes from running some crazy interesting high level Math derived machine learning model on data and I’m highly paid the opportunity cost to invest the time and effort to both become good at and write C++ is higher than if I can do the same thing in a few lines of python and just throw some more compute at the problem since that’s a fixed cost.
- 867-5309 7y agoparsing this single sentence would constitute passing an EFL exam in my book
- elliekelly 7y agoPerhaps the most valuable writing advice I've ever received: “When you think one sentence needs 35+ words what you really need is two sentences.”
- gigatexal 7y agoYes, yes, I tend to ramble.
- 867-5309 7y agoit wasn't meant as a dig - it seems perfectly valid and a good example of how much can actually be written in one sentence
- carapace 7y ago> Perhaps it could be this: if my value comes from running some crazy interesting high-level Math-derived ML model on data, and I’m highly paid, then the opportunity cost of becoming good at C++ is higher than if I can do the same thing in a few lines of python and just throw some more compute at the problem, since that’s a fixed cost. Add some hyphens and commas and shed a bit of cruft, and it's fine IMO. (I hope you don't mind my speculative editing.)
- gigatexal 7y agoI appreciate the feedback. Defending wordy stream-of-consciousness writing style is not a hill I want to die on. I did realize that if I have to throw a million cores at something vs. 1000 perhaps it would make sense to spend the effort or buy the time from an expert in C++ so as to save on the compute cost. But then, what if those million cores are only needed for a a day or an hour? Then python or some other rapid prototyping language would make a bit more sense imo.
- carapace 7y agoCheers!
- 867-5309 7y agothere was no need for that, see my response 3 hours prior
- Eridrus 7y agoCompute is most definitely a marginal cost rather than a fixed cost.... And when you start talking about buying 10s of millions in additional hardware to support the project you're trying to launch you start thinking pretty hard about whether you can speed things up. And for practitioners most of this is not crazy high level math, it's first year linear algebra and multivariable calculus at most, and generally just lego blocks, intuition and data work.
- pjmlp 7y agoThe negativity is because they were never serious about it. While C++ might not be the ideal language, choosing one that only works properly in Apple platforms, dismissing the complaints of lack of any solid roadmap in platforms that researchers actually use and hand waving any usability problems to just use notebooks in Google Compute cloud is not how a language gains adoption beyond its initial niche.
- ShinTakuya 7y agoI don't want to be that guy, but if they were going with a heavy handed language anyway, why not Rust? It has a good multiplatform support and most of the same benefits of Swift.
- TACIXAT 7y agoThe article addresses this. Data scientists probably don't want to manage memory.
- ShinTakuya 7y agoBut that's not what you do in Rust? That's more of a C++ thing. I think you'd be surprised, Rust is much more similar to Swift than you'd think. The biggest layer of complexity is fighting with the borrow checker in some cases, but that only really comes into play when you want to write something concurrent.
- simias 7y agoI love Rust and I don't know much about data science but from my understanding many data scientists are not hardcore programmers it the same way that many programmers are not necessarily great at sysadmin. It's a tool, but it's not really the core of their job. In particular they mention Python being very popular in these circles. Switching from garbage collected and dynamically typed to manual memory management + static typing + borrow checker + trait-based generics is going to be a deep dive for these people. Maybe they'd end up better off in the end though, who knows. I personally think that dynamic typing and GCs are overrated and their benefits overstated but that's obviously not the consensus out there.