8 ms·
Apple doesn't sell any products with NVidia RTX hardware. Yet still they feel the need to re-invent the wheel and write an API for it. I guess they really want
by robert_foss 7y ago
Apple doesn't sell any products with NVidia RTX hardware.
Yet still they feel the need to re-invent the wheel and write an API for it. I guess they really want to maintain that competitive moat.
- sleavey 7y agoIs this not something to do with the new Mac Pro?
- robert_foss 7y agoThe new Mac Pro only ships with AMD GPUs which do not yet support raytracing.
- chrisseaton 7y agoOf course you can ray trace on AMD, or Intel, or an abacus. It’s not some magic it’s just maths you can run on any general purpose computing device.
- robert_foss 7y agoYou can raytrace by hand too, but that doesn't change the fact that there is no dedicated hardware support for it on any hardware shipped by Apple. Raytracing is a not a problem that is well suited to GPUs since there are lots of data dependencies, which means parallelism is severely limited.
- chrisseaton 7y ago> that doesn't change the fact that there is no dedicated hardware support for it on any hardware shipped by Apple Nobody in this thread or anywhere else said there was. > Raytracing is a not a problem that is well suited to GPUs since there are lots of data dependencies, which means parallelism is severely limited. ...no it's the classic example of an embarrassingly parallel problem - that's literally the term people use because it's so easy to parallelise. Each pixel is completely independent with no data or control dependency between them and they can be rendered in parallel.
- dTal 7y agoThere's a subtle distinction here which I believe is the source of this disagreement. Raytracing is indeed embarrassingly parallel - you can render a 5 megapixel image on 5 million different machines in the time it takes to render a single pixel on one machine. However, each machine will be executing entirely different instructions after a very short period - there's not much "coherency" between adjacent rays, because all it takes is to clip the corner of an object and suddenly you're bouncing around a completely different part of the scene. This is a difficulty for GPUs, which are not true parallel clusters. What they do well is running the same set of calculations on different data, at the same time - in other words, not raytracing. I believe this is what the parent meant by "data dependency" - there are a lot of divergent branches, and the calculations that you do depend entirely on scene data. Intel's Larrabee architecture would have made GPUs behave like genuine clusters. I think it's a bit sad we don't have general-purpose clusters in our machines, just the hobbled GPUs.
- Jasper_ 7y agoEmbarrassingly parallel in theory is different from embarrassingly parallel in practice. One of the major differences is cache -- both instruction cache and data cache. You can, in theory, run 100 rays at once on 100 different threads, but since each ray goes to a completely different part of the scene, it will be loading different geometry, running different shaders, and fetching different textures. Even in path tracers that aren't using the GPU, one of the relatively recent huge improvements was "ray sorting", which tries to collect rays into bundles that use the same shader and roughly the same area of textures to improve on cache behavior. It brought huge speed increases. One of the big limitations of NVIDIA's RTX right now is that it does not support ray sorting.
- 0-_-0 7y agoInteresting tidbit about ray sorting: Imagination Technologies had a GPU design in 2014 that had support for ray tracing, including a Coherency Engine: https://www.anandtech.com/show/7870/imagination-announces-powervr-wizard-gpu-family-rogue-learns-ray-tracing https://www.anandtech.com/show/7870/imagination-announces-po... But there wasn't enough interest in GPU path tracing yet.
- Chazprime 7y agoThis makes no sense. Why wouldn’t Apple be forward-thinking with their APIs? This news suggests that there will soon be Macs that have raytracing hardware. And raytracing is a problem that is well-suited to GPU acceleration...ray calculations can be easily run in parallel and distributed.
- tomxor 7y ago> Raytracing is a not a problem that is well suited to GPUs since there are lots of data dependencies, which means parallelism is severely limited. This is a joke right? I mean ray tracing is the most common example pointed at as being highly amenable to parallel computation. all ray computations are independent (i.e cores), all scene and BDRF data are shared - this matches GPU architecture perfectly, the only reason it's more of a recent trend is because even with parallel compute it's still demanding for real time performance. If you don't believe me you can go to shadertoy right now and see endless demos doing raycasting and pathtracing in a quad.
- 0-_-0 7y agoRaytracing is indeed ill suited to GPUs because of the terrible cache coherency you get in a real scene that has a size measured in gigabytes instead of kilobytes that scenes on Shadertoy take up.
- kllrnohj 7y ago> all ray computations are independent (i.e cores) Which makes it ill-suited to GPUs since they want sibling threads to take the same execution path on cache coherent data. Better than a quad core CPU sure but a very small fraction of the performance they're otherwise capable of. You can see this with the DXR performance on Pascal vs. Turing.
- dagmx 7y agoYou seem to have bought in heavily to marketing. Pathtracing software has been available for production use on GPUs for years before RTX was available. Even in games, raytracing has been in use for a long time in various forms. Yes RTX enables extra optimizations and provides nice APIs for it to boot, but it doesn't enable the technology as a whole. It's very much existed in realtime for a long time and on GPUs for a long time as well. The real coup if anything is denoising. Advances in denoising are actually what really push realtime pathtracing forward as you no longer need to fire as many rays to converge on a useable image.
- kraig911 7y agoMojave as well does not have signed drivers for Nvidia.
- Entalpi 7y agoApple does though design its own GPUs. So it is not a far stretched idea that they might someday ship a GPU with dedicated RT hardware.
- leoc 7y agoThey're also likely to kiss and make up with nVidia again at some point, too.
- Entalpi 7y agoHmm, I would argue that the amount of investment into the GPU space by Apple almost ensures that they will replace both AMD and Intel at some point. Probably first in the thinnest of Macbooks as a way to test the waters and buy some more time.
- kraig911 7y agoThe iOS gaming platform is their biggest though? Think mobile gaming.
- Chazprime 7y agoATI is also bringing out hardware with dedicated RT cores as well, so it's likely that the hardware is coming to Macs shortly, just as next-generation game consoles will. Metal is Apple's realtime API, and seeing as DirectX doesn't run on Macs, they'll need an API for raytracing in order to take advantage of ray tracing hardware, just as Vulkan did.
- leoc 7y agoAnd if Apple doesn't provide a Metal RTRT API for third-party devs to target now, then whenever the hardware acceleration does show up third-party apps won't benefit from it right away. Apple will want the new hardware to bring immediate, large performance boosts to existing apps, not months and years of delay and hesitation from ISVs. Besides, they couldn't do any software RTRT themselves without writing a library for it anyway.
- mcphage 7y agoRay Tracing has been around for years. Heck, POV-Ray has been a great open source app for decades, even. It’s not some NVidia secret sauce.
- zamalek 7y ago> POV-Ray Is not realtime. You could find an article on raytracing and code something in a weekend. Granted, POV-Ray is vastly more complex than a toy raytracer, but it is not realtime. It takes minutes to hours to render a single frame. "Computers have been around for years, punch-card mainframes have been great at universities for decades even." NVidia are, currently, the only vendor who have dedicated silicon for it (AMD have demonstrated DXRT working with existing silicon). They do a actually have a secret sauce.
- mcphage 7y agoReal-time just means that they’re doing it faster. NVidia has their own implementation. But ray tracing isn’t an NVidia technology, and NVidia implementing it in silicon is no reason for everyone else to sit around and say “well I guess we have to do it NVidia’s way now”.
- zamalek 7y ago> well I guess we have to do it NVidia’s way now Nobody is, DXRT is a specification that any vendor is free to choose how they implement. NVidia are the only vendor who currently implement it.
- erikpukinskis 7y agoIf anyone is trying to look it up (Google doesn’t know) DXRT refers to DirectX Ray Tracing.
- DerDangDerDang 7y agoRTX is a marketing term, not a new technology.
- pixelpoet 7y agoWrong, it refers to new dedicated logic on their GPUs for doing BVH traversal and triangle intersection, much faster than if you use the more general purpose shader units. The same way GPUs had dedicated logic for rasterisation to make that super fast (hierarchical z-buffering, interpolation and blending), now they have some for ray tracing.