4 ms·
How can I find places that have these interesting problems to solve? And then, how does one go about "trying" to solve them? Sometimes I can look into what some
by phkahler 4y ago
How can I find places that have these interesting problems to solve? And then, how does one go about "trying" to solve them? Sometimes I can look into what someone is doing and propose (or implement) a performance optimization, but it's never a sure thing without really digging in. It's the kind of thing I enjoy but I'm not sure how to market myself or whom to approach.
On a related note, a LOT of software suffers from suboptimal performance but it's not usually so bad that it obviously impacts the electric bill.
- amelius 4y agoSounds to me that they are solving a very "local" problem in the sense that the solution depends strongly on local shapes only. And also the number of shapes seems very limited, so you could cache a lot of this probably. But please correct me if I'm wrong.
- david-gpu 4y agoWhat you do is try to provide value to the business. I.e. How does this company make money? What is preventing them from having more business or from saving money providing the same goods/services? If among those challenges there is something that can be addressed with better technology in an area of your expertise, you make a proposal to your management, and if you are lucky they will give you the "go ahead". In the real world, though, as a junior developer, somebody with much more expertise in the business and the technology side of things will be the one making these proposals and your job as a junior person will be to implement them. Get good enough at implementing them, show enough initiative, skill and business acumen, and over time you will be the one proposing ideas. You will need both hard work and good luck to succeed. Do that... or collect a paycheck and live your life. That also works.
- segfaultbuserr 4y ago> How can I find places that have these interesting problems to solve? And then, how does one go about "trying" to solve them? [...] On a related note, a LOT of software suffers from suboptimal performance but it's not usually so bad that it obviously impacts the electric bill. In scientific computing and HPC, I believe the solution to many problems can be accelerated significantly. For example, redesigning the algorithms in a way that can be benefited from GPUs. Unfortunately, it's not just a matter of rewriting the code, sometimes they require one to completely reinvent the algorithms in order to transform them to a form suitable for modern hardware, and it takes expert-level knowledge of the underlying mathematics and physics to do so. So many people just choose to keep running the decade-old existing code.
- dotnet00 4y agoAs someone dealing with this right now, the challenges are multilayered. You need someone who's an expert at the underlying math and physics, then they also need to understand optimal GPU programming patterns and need to be convinced of the value of GPU acceleration in the first place. On top of that, the expert maintaining the HPC code has most likely personally contributed a lot of the things the code is using to run efficiently on CPUs, so proposing large design changes for GPU acceleration also leads to ego clashes because they (somewhat reasonably) don't just want to completely throw out most of their own R&D. For the application I'm working with, it has taken ~2 years just to get through basic issues like convincing the scientists of the value of GPU acceleration, striking a balance between their existing methods and restructuring large parts for GPU, and convincing them that instead they'll end up having a lot of room to explore new things like methods which utilize both CPU and GPU.
- nikonyrh 4y agoWhat language do you use, CUDA-flavored C? I have found Numba's GPU JIT to be a great alternative, since you get to write Python.
- dotnet00 4y agoYep, CUDA-flavored C/C++. We looked into Python-based solutions but in the end they didn't really meet the scientist's requirements for the code (things like maintaining the existing experience for some people in other labs who have been using the C/C++ library directly).
- aprdm 4y agoApply to NVIDIA!