Nvidia takes a software first approach and AMD takes a hardware first approach.
It is clear that AMD's approach isn't working and they need to change their balance.
I read a story last year from Techpowerup where they said that AMD is making big changes to the way it approaches technology, shifting its focus from hardware development to emphasizing software experiences, APIs and AI.
Roadmap: 3 to 5 years.
https://www.techpowerup.com/324171/amd-is-becoming-a-softwar...
Hardware first, but then their hardware isn't any better than NVidia's, so I don't see how that's a valid excuse here.
(Okay, maybe their super high end unobtanium-level GPUs are better hardware-wise. Don't know, don't care about enterprise-only hardware that is unbuyable by mere mortals.)
I've always described Nvidia as an accelerated compute company that happens to sell hardware.
AMD are smart, and they solve big problems in ways that are baffling to many. They're very sensitive to moats and position themselves with products or frameworks to drain them.
I consider their primary product "engineering competence as a service", but when no one external picks up the reigns, they don't try very hard to play market maker. I remember when Intel's R&D budget was more than AMD's market cap– they're effective both at and when running lean.
The reality here is that people don't have grievances with CUDA and Nvidia aren't doing anything egregious with it. But whether that's due to ROCm's existence... we can only speculate.