7 ms·
Tile: A New Language for Machine Learning
- vbuwivbiu 9y agowhen i read "a language for X" I think "ok...no"
- Piezoid 9y agoDomain Specific Languages are good thing for specialized applications. Here we want automatic differentiation, parallelization and vectorization. It gets bad when general purpose language's features are added to allow things that the language wasn't designed for. A good interface to a GP language would be more relevant.
- janekm 9y agoI had the same gut reaction, but fortunately it turns out the article is not about a language intended for humans: “Our backend produces custom kernels for each specific operation on each GPU. It does this through an intermediate language called Tile. Tile is a simple, compact language for describing machine learning operations in a way that can be efficiently implemented on parallel computing architectures.”
- DigitalJack 9y agoHonestly, I do too. But this is just a helper language describing kernels. It actually looks nice.
- nv-vn 9y agoWhat's wrong with domain specific languages? SQL is a language for database manipulation, jq is a language for querying JSON, CSS is a language for styling documents, etc.
- autokad 9y agoit would be more like an SQL for people wanting to do SQL in ML, but its not really what the article is talking about. i need another language to program machine learning in like i need another hole in my head.
- apendleton 9y agoBut... that's not what this is. It's a tool to make writing device-agnostic ML frameworks easier. Consumers of said frameworks wouldn't even be aware of it.
- autokad 9y ago> " but its not really what the article is talking about."
- vbuwivbiu 9y agoCan you state in advance the scope of the domain ? Probably not, hence DSLs tend to grow extensions to cover unforeseen usecases - better to use a library written in a real language.
- deleted 9y ago[deleted]
- Isamu 9y agoFrom the Tile tutorial: > PlaidML uses a language called Tile to construct GPU kernels. When used to express machine learning operations, the Tile language is reasonably close to mathematical notation, while also being amenable to conversion into optimized GPU kernels. In addition, all operations expressed in Tile can be be automatically differentiated. > Tile and PlaidML are still in early development and the Tile language is actively changing to add new functionality.
- tomp 9y agoInteresting language! But, reading the manual, I don't quite understand why they _model_ the syntax to mimic mathematics, but then do things like implicit declaration of indices and renaming standard math functions...
- amelius 9y agoDoes it apply the same tricks as [0], the Tensor Algebra Compiler from MIT? [0] https://news.ycombinator.com/item?id=15599914 https://news.ycombinator.com/item?id=15599914
- hedgehog 9y agotaco's runtime appears to be designed for large sparse data while we designed Tile specifically for the dense linear algebra operations in neural nets. Quite a bit of work has gone into making the Tile runtime do the necessary optimizations to make neural nets run efficiently on GPUs and other accelerator designs, none at all for sparse workloads. Given that I'd expect the internals to be fairly different.
- FiveDegrees 9y agoHave you benchmarked Tile against Stalin∇? https://github.com/Functional-AutoDiff/STALINGRAD https://github.com/Functional-AutoDiff/STALINGRAD Page 3: http://barak.pearlmutter.net/papers/ad2016b.pdf http://barak.pearlmutter.net/papers/ad2016b.pdf
- hedgehog 9y agoThat looks both clever and interesting, do you know if they have published any benchmarks on GPU or other accelerator targets?
- FiveDegrees 9y agoNot that I've been able to find.
- Isinlor 9y agoWho in his right mind would name a library after Stalin?!
- laingc 9y ago
- deleted 9y ago[deleted]
- rbanffy 9y agoNot enough parentheses... ;-)
- jampekka 9y agoCome on, they still have a keyword AND two sets of parentheses AND a sigil AND a set of braces to define a function. It's like they couldn't agree on which syntax to use, so they decided to use them all.
- efangs 9y ago"making it many times easier to add support for GPUs"
- syadav 9y ago7 Powerful Programming Languages For Doing Machine Learning http://blog.hackerearth.com/powerful-programming-languages-for-machine-learning http://blog.hackerearth.com/powerful-programming-languages-f... Python if a popular scientific language and a rising star for machine learning. I'd be surprised if it can take the data analysis mantle from R, but matrix handling in NumPy may challenge MATLAB and communication tools like IPython are very attractive and a step into the future of reproducibility.
- madspindel 9y agoWho is behind Vertex.ai? Could not find any information about it. Is it AMD?
- pushingice 9y agoIt's a start-up. As of now they are still independent. (Disclaimer: I'm related to their CTO) https://www.linkedin.com/company/17896487/ https://www.linkedin.com/company/17896487/
- hedgehog 9y agoTo clarify, we are independent without any caveat or qualification (I'm the CEO). Our office is in Seattle, if you have questions happy to answer here, on LinkedIn, or by e-mail.
- tgandrews 9y agoIn most other languages this would fail code review as it is overly terse. I can see it does match the mathematical notation but if the language is supposed to provide any layer of abstraction then it doesn't do a very good job IMO. I guess the target market are mathematicians who already understand and write mathematical notation.
- eutectic 9y agoSince when was terseness a bad thing?
- anton_gogolev 9y agoImmediately after you are tasked to maintain said overly-clever and overly-terse code.
- singularity2001 9y agoWhat is the name of the language where the whole game of life was literally one line of code? That was the example that convinced me that terseness can be too much. also some physical theories which are summarised as A=F(P) Anterior=Factor(Posterior) , the future is a function of the past. the difference to E=MCC is that the later one actually contains physical entities and that 'Factor' is often not well defined.
- deepakkarki 9y agoI believe it was APL https://dfns.dyalog.com/c_life.htm https://dfns.dyalog.com/c_life.htm
- ram_sankar83 9y agoAPL?
- strangecasts 9y agoThere are a couple of esoteric languages explicitly designed with terseness in mind: https://esolangs.org/wiki/Category:Golfing_language https://esolangs.org/wiki/Category:Golfing_language