Mountain House (CA) - A few weeks ago, we learned how Nvidia is using its PhysX API to convert PhysX calculations and accelerate them on a GPU. AMD wasn’t happy and Nvidia was accused of benchmark cheating. Now there is an opportunity to get PhysX to run on AMD/ATI cards, but there seem to be some roadblocks and there is a certain suspicion that AMD does not want Nvidia’s CUDA and PhysX to run on its graphics cards. We chatted with AMD’s Godfrey Cheng to get more details on this issue as well as AMD’s physics strategy.
Nvidia never made a secret out of the fact that CUDA and PhysX aren’t tied down to Nvidia GPUs. The company told us that a CUDA development kit for CPUs is in planning and scheduled for a summer release. Nvidia also noted that CUDA could run on Radeon cards, the company just would not offer such a feature by itself. It did not take long until PhysX for Radeon popped up: NGOHQ.com’s Eran Badit claims to have succeeded in modifying the API to be supported by Radeon cards.
Initial hoax claims were quickly replaced by a general opinion that such a software could establish CUDA as a de-facto multi-GPU development platform and PhysX as the de-facto PhysX standard, helping Nvidia to broaden its reach and damaging AMD/ATI’s PhysX efforts. However, it was also believed that such a tool could make Radeon cards the more attractive product since it would support PhysX and benefit from AMD’s Havok collaboration.
Badit said that he would need help from both Nvidia and AMD to finish his software and you just knew that at least one side would not be too happy. While Nvidia opened up and provided access to its software libraries, engineers and hardware, Badit noted that AMD was less helpful. It appeared as if AMD was silently blocking the development of PhysX for Radeon. We were in contact with Badit, but did not hear from AMD, which is why we contacted the company to find out what was going on.
We talked to Richard Huddy, Manager of Worldwide Developer Relations, and Godfrey Cheng, Director of Product Marketing. Cheng is mostly known for its unofficial title of AMD’s Gaming Czar.
TG Daily: AMD has been touting "Customer Centric" drum for some years now and there is no other way to view the possibility of PhysX running on AMD card than as a "Customer Centric" feature. Is there a chance we will see such this feature for Radeon cards?
Cheng: We will happily work with and support all middleware tool providers. We announced collaboration with Havok since they are willing to operate as a middleware vendor and enable support for all platforms. If Nvidia wishes to place resources into enabling PhysX on AMD platforms, we would have no argument, provided they don’t artificially disadvantage our platforms in relation to theirs. We have attempted to initiate discussions with Nvidia on this matter, but so far they have been less than forthcoming.
Nvidia stated that the PhysX software stack is layered on top of Nvidia’s proprietary CUDA interface. As you know, proprietary interfaces for hardware acceleration on the PC haven’t really been successful in the long term with developers (re: S3 Metal, 3dfx Glide, Cg). In these cases, the solutions they were trying to solve were superseded by collaborative industry wide interfaces, which is why we think it is far better for us to be putting our efforts into advancing open, industry standards such as OpenCL that will ultimately grow the ecosystem for Stream Computing. This is consistent with AMD’s Open Platform Strategy, and is a more Customer Centric approach in the long term.
We see a better option for developers in combining a middleware layer based on open industry standards, like OpenCL, that balances the computation between the CPU and GPU, with the possibility for best-of-breed third-party APIs, libraries and development tools that interface seamlessly with the middleware layer. This way the developer is freed from having to worry about where the physics executes, it will automatically execute on the best processor for the job.
TG Daily: What are AMD’s thoughts about GPU-accelerated physics?
Cheng: There is a time and place for everything, including GPU-accelerated physics simulation. The model that AMD is pursuing is a balanced platform approach and offloading to the GPU where it makes sense. There are a few factors that we considered when we formed this strategy:
The primary technical challenge today for video games is rendering. Rendering will remain the limitation for realism and gameplay for the foreseeable future. It would be better to focus the GPUs on rendering to provide the best game play. Also remember that when you create more objects or rigid bodies with physics simulation, it further taxes the rendering system. There are scenarios where GPU physics simulation actually slows down gameplay and decreases the experience.
With the proliferation of quad-core CPUs from AMD and Intel, there is ample horsepower to run physics simulation on the CPU. Most games today can take advantage of two cores effectively, scaling to the third and fourth core yields diminishing performance. The game developers are realizing that there is available horsepower with the third and fourth cores for physics simulation.
Game developers will write code for the biggest installed base of hardware to ensure a big market for their games. The only certainty for the developers is that there will be a multi-core CPU in modern PCs. To write a game that supports a proprietary GPU-based physics API would mean a vastly different code base for the game developer as well as relegating this type of game experience to a small percentage of the computers. Clearly, this is not the desirable path for game developers and AMD.
Our strategy is to optimize our CPUs to run Havok’s API and libraries and then to investigate how we can improve gameplay with offloading certain forms of physics simulation to the GPU. We have our theories and models, but we will not announce our product plans until we are ready to roll them out.
Why did AMD choose Havok to provide the physics API? Does AMD believe in heterogeneous physics support, such as supporting both Havok and PhysX, or do you see future with only one physics API?
Cheng: Havok as an ISV is genuinely working with us in an open, collaborative and royalty free manner and is interested in the acceleration of its toolset that the entire AMD platform can provide. We are naturally interested in working with any ISV that is willing to co-operate in such a manner.
Havok, though, is the clear leader as judged by developer and title support in the PC space. With recent moves, such as opening their core Physics toolset freely to all PC developers, it is easy to see this is the case. While we appreciate that support for PhysX may be funded today, we question if this is a sustainable model beyond a few special levels within a game or even a couple of titles. The key is not to push a physics toolset into a game developer: The game developers must want it to improve their titles. As part of our strategy we will also continue to work with game developers to support and optimize their proprietary physics engines as well, so this is not a one-size-fits-all approach. GPU-accelerated physics is in its infancy. Victory is not who can do fancy demos in 2008 but who will be chosen by developers and who will be supported over the next few years.
TG Daily: Recently, Eran Badit and his team of NGOHQ.Com fame managed to get PhysX working on an ATI Radeon 3800 series card. What is AMD’s opinion on this project?
Cheng: We think it is great that people continue to use our products in creative ways.
TG Daily: How is AMD supporting Eran’s team? There are rumors flying around that Nvidia is against the project, but it turns out that DevRel has an open communication and Nvidia is supporting him with documentation and hardware. Will AMD provide driver support, engineering support, Radeon 4800 series hardware?
Cheng: Likewise, our Stream SDK, with complete documentation for CAL is available online. Additionally, any questions can be addressed to our Developer Relations team or via the AMD Stream Developer Forums. We look forward to hearing more from them and seeing their results.
TG Daily: When will AMD roll out its physics product plan?
Cheng: We expect to give more details regarding our plans later this year.
This situation looks far from being over. There are conflicting voices coming from all sides, and we are surprised to see AMD opting for Havok instead of offering support for both.
Godfrey Cheng reacted quickly to our interview request and clarified many issues. However, Badit told us that he was "disappointed’ with AMD’s support: "We are very disappointed with lack of support from AMD - we expected more than that," he said. "Apparently, they don’t want their users to have both Havok and PhysX APIs, since AMD’s support is critical for this project."
Apparently, Badit was ready to shelve the project, but he remained stubborn and keeps working on the project. Since we are interested whether PhysX can really run on Radeon cards, we have put him in touch with a partner that is now supporting his team.
Plus the fact you cant buy a single core cpu anymore, and by this time next year we will have 8-12 cores. Now if you put physics in a game on the GPU what would the cpu do? Game logic? We gona get 8-12 core cpu's to do game logic? while we have GPU's that are still struggling to render crysis. I just dont see gpu's doing physics by themselves in games unless somehow physx was put into directx. But i cant see it happening.