3 ms·
I've had to grab my throwaway a/c just because I've worked on this. I've used this framework in a commercial settings, in finance where it is gaining popularity
by vergessenmir 9y ago
I've had to grab my throwaway a/c just because I've worked on this. I've used this framework in a commercial settings, in finance where it is gaining popularity. Have had to work through the bugs, been through several upgrade iterations.
When it works. It works. When it fails you're in for a world of pain. A lot is going on behind the scenes. The data structures, classes need special annotations to carefully translate the c# structures into something that cuda understands. You have to pay special attention to your object hierarchy, you have to be aware of all C# keywords that are supported and not supported. The fields in your class may be misaligned by a few bytes of the wrong annotation is used.
Don't get me started on cuda pointers - you're not shielded from this. My experience with this has put me off cuda frameworks in general.
You're better off learning cuda or hiring a cuda Dev than investing heavily in stacks like this.
My background is in HPC in finance.
- Bob2019 9y agoI'd take what you have described over Python and C++ easily.
- AboutTheWhisles 9y agoWhy would someone use C# in the first place? It seems to me that any advantage from the environment has gets lost by trying to make it work on a GPU.
- sebazzz 9y agoI was going to say something similar to this. Usually such abstractions are leaky. I don't know the target market for this product. The one's who know CUDA will just use C++. The one's who know C++ won't use this. The one's who do not know CUDA will probably not use this because they will need to learn CUDA first anyway. (Same story with those C# to Javascript compilers)
- vergessenmir 9y agoWell C# is a more familiar language for quants and quant devs than cuda. Very few quants know CUDA. My brother happens to be one of them but he does most of his development now in python/pandas. He gets someone else to do the heavy lifting to target the HPC platform of choice. Now the motivation behind the layer or framework is to provide greater productivity, remove the step of pairing quants with cuda Devs when productionsing the code. These are all valid reasons to adopt such frameworks. But in practice the cost of upgrades, strange pointer bugs and delays to production releases don't make it worth it. Also you need the CUDA Dev for situations that the framework fails. If such a framework does become available that removes these pain points, I'd adopt it in a heartbeat This may vary in other industries other than finance.
- sharpercoder 9y agoAre there structural problems with this approach or is it mainly because of immaturity? Usually version 3 of most software is mature enough to judge it by its merits.
- pjmlp 9y agoI disagree, if people have given up trying to fly on the years of continous crashes, we would never haven gotten mainstream comercial flights. Many times there is a need of ongoing investment, where things are failing pretty bad, until they actually take off.
- kornish 9y agoYour example doesn’t account for substitutes, though. Before commercial flights, civilians couldn’t fly. Before Hybridizer, programmers could still use CUDA.
- pjmlp 9y agoThe point being that it takes time to get the right solution for a problem, and we shouldn't be stuck with C and C++ for GPGPU forever, just because no one has found out the ideal solution for multi-language GPGPU programming. Just yesterday I saw a documentary about Gotthard Tunnel, also considered impossible to achieve, with high human costs and risk of insolvency until they finally managed it. John Harrison took almost his entire life to create the first usefull marine chronometer, amid disbelief and issues to get proper funding. Or if you want to bring it closer to home, very few people believed JavaScript would ever become fast or even leave the browser.
- EpicEng 9y agoSure, and on the road to flight many bad/impractical ideas were thrown out.
- naasking 9y agoSounds like an IL analysis could point out all the problematic cases without all of the pain.