9 ms·
Coding Mistake Made Intel GPUs 100X Slower in Ray Tracing
- speps 4y agoTLDR: some temporary memory used for ray-tracing was allocated off-chip instead of on-chip, one flag was missing when creating the allocation.
- MonkeyClub 4y agoThanks for the summary, I popped in just for that. I got intrigued though, and indeed you can read the thing both ways: an optimization gave a 100% boost, or an oversight missed out a 100% boost. Curiously, Tom’s went with the scare tactic, and got me thinking: is it because clickbait, or do they consciously support the responsibility in software engineering movement?
- fluidcruft 4y agoI think it's just the general trend of portraying intel as incompetent (particularly in GPU).
- Marsymars 4y ago> I got intrigued though, and indeed you can read the thing both ways: an optimization gave a 100% boost, or an oversight missed out a 100% boost. To note; a 100× speed up is a 9900% boost. A 100% boost is a 2× speed up.
- rayiner 4y agoNot quite. The buffer has been allocated in system memory. The fix was to allocate it in GPU memory (which isn’t on chip, but the local GDDR VRAM).
- mrtweetyhack 4y ago
- Heston 4y agoHow does a massive company like Intel who's work heavily involves code/compiler optimization not profile their drivers for something this simple?
- needusername 4y agoIt’s my general impression that software is not one of Intel´s strengths.
- gumby 4y agoA little concerning given how much software there is inside their CPUs (not just microcode but the management processor et al).
- drfuchs 4y agoAnd how much software is used to generate what’s inside them; search for “Pentium FDIV bug”.
- dathinab 4y agoI'm not sure about this. This mistake could easily have been in other vendors Linux GPU drivers, they in the end don't have nearly the same priority (and in turn resources) as the Windows GPU drivers. And it's a very easy mistake to find. And I don't know if anyone even cared about ray tracing with Intel integrated graphics on Linux desktops (and in turn no one profiled it deeply). I mean ray tracing is generally something you will do much less likely on a integrated GPU. And it's a really easy mistake to make. And sure I'm pretty sure their software department(s?) have a lot of potential for improvement, I mean they probably have been hampered by the same internal structures which lead to Intel faceplanting somewhat hard recently.
- actually_a_dog 4y agoEven so, the very first thing anybody learns about GPU programming is to use the VRAM on the card whenever possible, and to minimize transfers back and forth between VRAM and main memory. This is a super basic mistake that should have been caught by some kind of test suite, at least.
- ldjkfkdsjnv 4y ago
- IntelMiner 4y agoThe level of depth in your comment is comparable to a toddlers swimming pool and the amount of vitriol a Trump rally This isn't Reddit. Don't just leap in to make pithy comments, try to add to the discussion
- machinekob 4y agoIm not sure about waste of money. It is biggest US chip maker, you can for sure point on better chip reusing companies (NVIDIA and maybe AMD [they got a lot of good launches in past 4 years but it can change very quickly]). If USA want to be independent from China destroying/blocking Taiwan there is no other way then manufature your own chips (China and Taiwan put a lot of subsidized into lagging tech all the time and if it clicks it is always big just like TSMC) Also Tesla grow on US gov support so don't fanboy 2much about that.
- userbinator 4y agoIntel's GPUs have been exclusively UMA since the i740, so this doesn't seem like a particularly rare mistake to make if it was from someone used to all their previous ones.
- pxeger1 4y agoWhat does UMA mean?
- redox99 4y agoUniform memory access I guess
- userbinator 4y agoUnified Memory Architecture, basically the normal integrated graphics using system RAM and VRAM. It was really amusing to see Apple hype that term (which has been around in the PC industry for decades and synonymous with low cost and performance) so heavily around the release of the M1. The contrasting term is "DIS", i.e. discrete graphics.
- cmroanirgo 4y agoFor those interested, the (linked) source article from Phoronix, which shows the code change: https://www.phoronix.com/news/Intel-Vulkan-RT-100x-Improve https://www.phoronix.com/news/Intel-Vulkan-RT-100x-Improve
- ncmncm 4y agoBugs always travel in packs. If you don't see the others, it is because you aren't looking right.
- leeoniya 4y agofrom the commit discussion: > This is why there shouldn't be such a bit. :) Default everything to local, have an opt-out bit! yep. why was the default the slow path?
- nemothekid 4y ago>yep. why was the default the slow path? Only thing I can think of is that they reused to code from their integrated graphics drivers which likely don't support GPU memory. So the default is the option that works on the millions of "GPUs" they have already shipped.
- userbinator 4y agoThis. The last discrete GPU Intel shipped in any significant quantity was over 20 years ago, the i740. That said, the 810/815 that came after did have a (to my knowledge little-used) "display cache" feature, but they were otherwise still a UMA design.
- dathinab 4y agoIsn't a lot of the "arc is so bad judgement" quite per-mature. I mean it's all based on the state of the driver used with pre-release GPUs and often the worst GPU of the lineup. You could say this are beta drivers, but that is somehow not something people mention. I mean sure there was a lunch of arc mobile GPUs but only in some specific region which was neither the US nor EU, it's as far as I can tell bit like a closed beta release from the dynamics involved. So shouldn't we wait until the "proper" market launch of the dedicated gpus in the US before taking it apart as a catastrophe? And sure older Games might not run as well, may some will never (which doesn't mean they don't run good enough to be played nicleye). Maybe except on steam because of the emulation of older direct X versions being base on Vulcan, that will be interesting.
- carry_bit 4y agoIt was announced that the pricing would be based on the performance of tier-3 titles (the ones not receiving special attention), so it could be a good deal before the drivers improve.
- wmf 4y agoI agree that we should wait for the final release to make any judgements but these drivers have been in development for three years or so. They're not going to magically improve in the next few months.
- pdovy 4y agoYeah it seems pretty unrealistic to expect Intel to catch up to the NVIDIA and AMD duopoly on their first generation of (modern) cards. Intel seems to have rightly recognized that the driver advantage is a huge moat for those guys - they have to instead compete on price and focus on having good support for titles that will get them the the biggest chunk of the market. That said, man, if they could have released these a year ago the wind would have been at their back way more than it is now with GPU prices trending back towards MSRP.
- make3 4y agoidk man, Intel is one of the biggest richest tech (chip) companies in the world, I don't feel like I have to give them chances. This is pretty unprofessional.
- wnevets 4y agoWouldn't it also be fair to say a driver update made ray tracing 100X faster? Interesting how a negative title has shaped the comments of this post.
- wmf 4y agoWhen looking at drivers or OSes, the hardware provides performance and the software takes it away. You should consider the ideal performance of the hardware as the baseline and measure the overhead relative to that.
- parineum 4y agoI imagine there was an advertised performance that they were under. I think that's should be the baseline. This being a mistake/bug, I think it's obviously underperforming rather than being optimized.
- bravetraveler 4y agoFair indeed, but I suspect the result would likely be the same. It's a bit like making a mess and cleaning it up - good on 'you', but don't expect praise The article jumps right into that: > This is something to be celebrated, of course. However, on the flip side, the driver was 100X slower than it should have been because of a memory allocation oversight. Maybe this is where the phrase "It's a wash" comes from Anyway, I'm hopeful things mature quickly - having worked with Intel people, I'm cautiously hopeful
- PaulsWallet 4y agoI'm not one to shy away from dunking on Intel and they very often deserve it but I feel that Intel is getting a lot of undue shit in regards to Arc. I'm actually very excited for Arc and will probably buy one to play with if the price is right if for no other reason that Intel's Linux support has in the past been pretty solid.
- babypuncher 4y agoLaunching with broken drivers certainly did not help. Promising to price their GPUs based on their performance in "Tier 3"* games will certainly help them win a lot of consumer goodwill though, especially with Intel targeting the critically underserved low and midrange gaming GPU market. * For those OOTL, Intel has grouped all games in to three tiers based on driver optimization and graphics API usage. Tier 1 is DX12/Vulkan titles they have specifically optimized for. Tier 2 includes all other DX12/Vulkan titles. Tier 3 is DX11/OpenGL/older DX. Nvidia and AMD have had a decade+ to optimize their drivers for higher level APIs like DX11, including hundreds of game/engine specific optimizations. The result is ARC GPUs performing notably worse in DX11 titles than equivalent hardware from Nvidia and AMD. Intel's promised pricing structure means that Your $250 ARC GPU will perform about as well in most Tier 3 games as a $250 RTX or Radeon. Meanwhile, Tier 1 and 2 DX12/Vulkan software will likely outperform competing devices in the same price range.
- xbar 4y agoSure. But considering you can't buy them anywhere but China makes the notion of "launched" rather limited.
- _carbyau_ 4y agoFirstly, 1.3 billion people ain't nothing. Secondly, most people in the world know China can ship hand-sized objects to their country and aren't above reselling. Thirdly, in many countries it seems that postage from China is cheaper than postage from across the country. This seems to me to be an officially deniable launch. A beta-launch as it were. A way Intel can say "Well, we didn't release it to you because it wasn't ready for you..." while still actually having launched it and having the whole world tell them what they need to fix. But a release is a release. So they should be judged on their product. Which so far seems lacking. I have hopes for the future though as they work on cleaning this mess up.
- oumua_don17 4y agoIrrespective of this coding mistake, the bigger mistake is shipping Arc a year too late. In the midst of the pandemic, with the GPU (and chip) shortage on one hand and Intel releasing a decent card with good enough driver reasonably priced would have really given them a great window of opportunity to catch Nvidia and AMD in the GPU blind spot. It's been so confusing a GPU story to follow that it shows that there has been a lot of confusion and poor planning plus prioritisation in shipping this discrete GPU from Intel, ironically a story not different from their other product and probably indicates a systemic failure. The next year or so should tell us if Pat G can really turnaround Intel or not, most likely not.
- TingPing 4y agoThe driver wasn't good enough though.
- Animats 4y agoGPU memory allocation in Vulkan seems to be a huge headache. That seems to be the underlying cause of this ray tracing problem. It's exposed to the higher levels, but in strange ways. I use the Rend3->wgpu->Vulkan chain, and can't get any info about how much GPU memory is available or left. If I load too many textures into an NVidia 3070, they spill into main memory and rendering continues, slowly. If I load too many meshes, I get a fatal error from the Rend3->WGPU layer, because the allocation that failed happens long after I made the request to load a mesh and it's too late to just return an error for the request. Can anyone explain why it's so hard to find out the memory allocation situation in Vulkan?
- yw3410 4y agoAre you using the memory budget extension? https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_memory_budget.html https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
- Animats 4y agoNo, that's two levels below me. Rend3->WGPU is trying to abstract over OpenGL, Vulkan, Metal, and Direct-X 11/12, which creates problems in this area. Something to discuss with those devs.
- yw3410 4y agoI wonder if it has anything to do with the WebGPU standards not allowing it for browsers, or even maybe that it's not actually a meaningful question from WebGPU's point of view (iirc, they have their own allocator).
- beebeepka 4y agoIntel PR machine appears to be in full swing. They sent shills to every tech site and tuber. Does anyone believe they deserve another chance? After how they treated us, and all their notable competitors throughout their history? No, I do not believe intel entering the GPU market again is a good thing for anyone but them You may downvote now
- oblak 4y agoTo reiterate: impeccably timed fix steals the headlines. Not the greatest deduction for anyone who has been following the industry.
- Nevermark 4y agoMany years ago I released some software with a major algorithm replacement that delivered a roughly 10x speed improvement. Within six months I discovered a bug in the new algorithm whose removal delivered roughly another 10x improvement. (That’s the most dramatic single speed up of a previously well designed algorithm I have delivered in my career.) Numerical algorithm bugs can be tricky to detect when sandwiched between dramatic improvements like that!
- olliej 4y agoOof that is a sucky bug and I hope the person who made it doesn’t feel too bad, or get shit on by people. It seems like a super easy oversight to make, and if it’s always been there you won’t see a regression in your tests as existing baseline by definition couldn’t exercise the feature.
- djmips 4y agoI don't blame them but it shouldn't be an easy oversight to make. Profiling should be mandatory. And good profiling tools should exist. We are all flying blind when we code without profiling.
- olliej 4y agoThat's my point - you need to have tests to profile. I would guess that they had correctness tests. A profile of the tests is only helpful if you know what should or should not be there. I've always been of the impression that intel is a company that outsources writing drivers, which would easily lead to devs who are reading documented interface but not actually involved in the hardware design.