7 ms·
Vortex: OpenCL compatible RISC-V GPGPU
- pixelpoet 3y agoOpenCL is the best damn compute API ever. I'd totally buy and use one of these GPUs if I could!
- IshKebab 3y agoReally? I found it to be much worse than CUDA when I tried to use it years ago.
- wubrr 3y agoIn what ways was it better/worse?
- softfalcon 3y agoHaving used both, it is true that CUDA has the "enterprise edge" of being a proprietary, paid for product, backed by an (almost) trillion dollar company. There are features and conveniences in CUDA that aren't present in OpenCL. That being said though, for how little funding, research, and support OpenCL receives, it is an astoundingly capable tool. I don't think it's fair to compare apples and oranges, even if they're clearly both "fruit" with a "high sugar content".
- pjmlp 3y agoIt isn't as if the Intel and AMD enterprises ever managed to produce anything comparable to CUDA tooling.
- seanw444 3y agoNvidia has brand recognition and momentum on their side. It's not that Apple or AMD are incapable.
- pjmlp 3y agoAMD has more than proven its incapability to provide proper OpenCL tooling during the last 10 years. Apple gave up on OpenCL, after disagreements how Khronos managed it. Metal Compute provides a CUDA like development experience.
- softfalcon 3y ago> Apple gave up on OpenCL, after disagreements how Khronos managed it. Ah yes, the old "I can't completely control it, cause I'm Apple, so I'm taking my ball and leaving" ploy. Though, I will admit, AMD was also playing this game at the same time, so a disagreement was bound to happen between them and Apple. > Metal Compute provides a CUDA like development experience. And there it is. Proving my prior statement, Apple didn't want an open compute platform, what they wanted was their own compute platform and it would have "been nice" if they could pretend it was "open" and they "shared" nicely with the other tech kids. Before people come at me as an Apple hater, please know that there are many, many Apple devices in my home. I'm not an Apple hater, but I call it like I see it.
- smallmancontrov 3y agoNVidia's OpenCL was fine, but AMD's OpenCL was an unholy dumpster fire of broken examples, missing error messages, and crashing drivers.
- MaxBarraclough 3y agoI used OpenCL a little in 2015. AMD's implementation seemed pretty good, whereas nVidia's was significantly behind. It didn't support OpenCL 1.2, iirc.
- pjmlp 3y agoWhere was AMD's implementation of Nsight's debugger or VS integration?
- MaxBarraclough 3y agoI'm pretty sure AMD's OpenCL did have both Visual Studio integration, and a decent debugger. I don't know about today.
- pjmlp 3y agoI am pretty sure that AMD only has debugging tools for graphics API and never offered anything beyond printf debugging for OpenCL. And VS integration means intellisense and syntax highlighting as well, not just calling their compiler.
- MaxBarraclough 3y agoAMD CodeXL supported breakpoints in OpenCL kernels, and had Visual Studio integration. It also had an editor for OpenCL C code. [PDF] https://john.cs.olemiss.edu/heroes/papers/AMD_OpenCL_Programming_Guide.pdf https://john.cs.olemiss.edu/heroes/papers/AMD_OpenCL_Program... See section 3.1 for debugging, section 4.2.2 for kernel code editor.
- pjmlp 3y agoI guess, if one enjoys using C99 without any kind of nice tooling, calling GPU compiler and linker with APIs, printf debugging.
- pixelpoet 3y agoIndeed, I'm not a fan of C++28 with virtual functions, exceptions, new/delete and whatever in my GPU code :P With a parallel CPU implementation I have pretty few debugging issues, and most importantly, I definitely enjoy having excellent performance on Intel, AMD and Nvidia GPUs, on Windows, Mac and Linux.
- WanderPanda 3y agoTemplates would be nice, though. So much better than macros
- ranger_danger 3y agoI still only write C89. Being able to declare variables anywhere can lead to some really nasty bugs especially when using goto.
- mdaniel 3y agothere have been quite a few threads about "reasonably priced" FPGA platforms and https://github.com/vortexgpgpu/vortex/blob/master/docs/fpga_setup.md https://github.com/vortexgpgpu/vortex/blob/master/docs/fpga_... will interest you, but regrettably I haven't ever tried to use an FPGA to speak to whether their verilog only targets one of them, or "bring your own," and for sure I'm not the right person to speak to how much such a stunt would cost It would make for a helluva blog post, though, or set up a shopify selling pre-made ones for people like you :-)
- lenerdenator 3y agoI'm excited for what processors and software look like in 5-10 years. Open all the way down.
- SpecialCoffee 3y agoCould we get an expert to weigh in on the state of OpenCL. It seems like AMD and Intel are shifting away from OpenCL other GPGPU languages such as ROCm and DPC++.
- pjmlp 3y agoDPC++ is Intel's own thing on top of SYCL, which relies on OpenCL drivers, basically long story short, what happened after Khronos realized shipping source code and C99 dialect wasn't really what most researchers were keen on using for their work.
- pixelpoet 3y agoNot sure if having two commercial OpenCL apps[0] makes me an expert, but the practical reality is that OpenCL works just great today, even on latest Apple platforms. It's not a lot of work to do a little testing and tuning on the 3 main vendors. News of OpenCL's demise is greatly exaggerated. [0] https://glaretechnologies.com/ https://glaretechnologies.com/
- rwbt 3y agoWhat version of OpenCL do Apple platforms support? Also, is OpenCL also deprecated like OpenGL on Apple?
- my123 3y agoit's 1.2, macOS only, and marked as deprecated
- jsheard 3y agoDid you figure out a way to interop OptiX with OpenCL, or do you just not use Nvidias RT acceleration? AFAIK it's not exposed directly through OpenCL.
- pixelpoet 3y agoUsually you batch up a large buffer of rays to be traced anyway, so it's not really a problem to hand this off to another API if need be. This is often the case on CPU too, where you would use something like Embree, but on GPU it'd be Vulkan RT or OptiX (we didn't do this for Indigo Renderer, however).
- pvg 3y agoA thread from 2020: https://news.ycombinator.com/item?id=22492902 https://news.ycombinator.com/item?id=22492902
- m3kw9 3y agoSo why need Wikipedia when this model can get me any topic I want?
- m3kw9 3y agoYou guys don’t like what’s coming for sure
- taminka 3y agoto clarify, this is a gpgpu lib implementation that's compliant to the openCL spec, right? i imagine if i tried to explain to someone the state of modern GPU computing i'd sound like an insane person, why is it so complicated, ugh :( so there's openGL and openCL, which are specifications with various implementations, both widely supported, but not as performant/modern there are vulkan/metal/dx, which are all modern with good driver support (metal limited driver support) graphics-first APIs, with compute shaders (vulkan kompute, metal performance shaders and whatever dx has?), all three have excellent performance then there is cuda/hip, both of which are proprietary, cuda w/ excellent driver support, and hip w/ reportedly awful driver support, cuda can only target nvidia gpus, and hip can target both cuda and amd gpus (though very few amd gpus), both have very good performance then there is SYCL, which is by khronos, and it's what intel uses w/ openAPI, which is a heterogenous computing framework that can produce openCL/vulkan and in the future other api's code then there's webgpu, which is a spec, that has two C and one rust implementations, that can target all of the above (except SYCL obv, bc it's not a graphics api) did i get that right?
- jlokier 3y agoI would add WebGL to the mix, for when you need that GPU performance in a browser that doesn't support WebGPU yet..
- saurik 3y ago> i imagine if i tried to explain to someone the state of modern GPU computing i'd sound like an insane person, why is it so complicated, ugh :( I mean, do you think this is different for anything else in our field? This was in some sense really simple... try doing this for front-end GUI frameworks or even multi-tenant isolation technologies.
- taminka 3y agomy point of comparison is other types of accelerators (CPUs mostly) and GPU ecosystem in the past (when there was just like openCL and openGL)
- marci 3y ago