4 ms·
I think I mostly just want to assuage my embarrassment about being a computer programmer with no idea how to use most of the computing power in modern computers
by Joeboy 7y ago
I think I mostly just want to assuage my embarrassment about being a computer programmer with no idea how to use most of the computing power in modern computers.
Edit: And ideally I'd like to be able to learn on my "Intel Integrated Graphics" laptop, although I don't care about performance there.
Maybe I should be looking into something that can target SPIR-V via LLVM, or something? Don't know what good options currently exist for for that. I'm generally a bit lost, if that's not already obvious.
- jjoonathan 7y ago> ideally I'd like to be able to learn on my "Intel Integrated Graphics" laptop NO. Rent a cloud server or buy an old computer with a discrete GPU. Don't even try winging it. This is not x86 land where everything works everywhere. Not even close. NVIDIA/CUDA is what everyone does, AMD/OpenCL is like shooting yourself in the foot, and Intel Integrated / OpenCL is like shooting yourself in the head. Yes, really. Last time I encountered Intel Integrated, I spent an entire weekend trying to port a relatively trivial shader. It would compile and run, but the output was always very wrong. Needless to say, the tooling was no help, and remember this is GPU land where you don't have printf, but I eventually discovered the problem: 8 bit floats. Yes, 8 bit floats are a thing in Intel Integrated land. No, it didn't give me any warning it was using them. "You asked for a float, you got a float, what's the problem?" I imagine an intel engineer saying. Because I'm a stubborn SOB I didn't learn my lesson there and I soldiered on -- next bug was a silent pageout issue. Does this sound like fun? If so, go for it. If not, buy a discrete GPU. AMD might be OK these days, they've been working on their problems, but once bitten twice shy, so my recommendation is to buy something with an NVIDIA GPU and consider the green tax an investment in your mental health.
- skohan 7y ago> Yes, really. Last time I encountered Intel Integrated, I spent an entire weekend trying to port a relatively trivial shader. What are you talking about? What API were you using? I use Vulkan to target multiple GPU architectures and I have never had a problem with compatibility or shader behavior, even with very complex multi-pipeline processes. In general, if your code doesn't throw validation warnings, it will do what you expect on any hardware.
- jjoonathan 7y agoGLSL. Maybe Intel Integrated works better with Vulkan, but 8 bit floats were a hardware choice. The only way to "support" them would be to throw warnings/errors or kick back to software emulation.
- jfkebwjsbx 7y agoIn my experience, Intel drivers are quite good, specially in Linux.
- skohan 7y agoI mean if all you want to do is dip your toe in the water with GPGPU programming OpenCL is probably honestly a fine place to start. Specific knowledge of the OpenCL API is probably not the most useful thing in the world, but you will learn a lot about the basic concepts about how the host and the GPU talk to each-other, and how the constraints of GPU programming are different than CPU programming, all of which will carry over to other technologies like CUDA or Vulkan. You could also get started with a simple Vulkan compute example, but as others have said learning Vulkan is a task unto itself, so if you're just playing around and you're not sure if you really want to invest in learning it for something valuable, it might be more of a time sync than you're interested in.
- Joeboy 7y ago> I mean if all you want to do is dip your toe in the water with GPGPU programming OpenCL is probably honestly a fine place to start. I think really that is all I want at this point. But I'm taking the many dire warnings under advisement. Vulkan sounds a bit hardcore for me right now.
- skohan 7y agoFWIW it’s probably easier to try out an openCL tutorial on your iGPU and see for yourself than it is to provision a cloud GPU or build a new system