Sign in with
Sign up | Sign in

How We Tested AMD's Mantle API

AMD Mantle: A Graphics API Tested In Depth
By

You might assume that Mantle's primary purpose is to squeeze as much performance as possible out of Radeon graphics cards. In a sense, that is true. But it's important to keep in mind that the problem Mantle is designed to solve isn't really graphics-oriented. Rather, Mantle is intended to tackle the inefficiencies that hamper how the work is distributed to CPUs.

Therefore, in a best-case scenario, Mantle alleviates bottlenecks imposed by budget-oriented processors (the kind AMD manufactures and sells). For instance, consider this scenario: in DirectX, a Radeon card may deliver faster performance on a high-end Intel Core i7 than on an FX-4170. If Mantle works as intended, we should expect to see the FX-4170's performance results increase and come closer to the Core i7. We wouldn't expect the Core i7's numbers to increase much because it's already a very fast CPU that masks the driver overhead imposed by DirectX.

To test this, I set up a wide array of platforms and graphics cards described in the table below. All Radeon cards are benchmarked under DirectX and Mantle to gauge whether there are appreciable differences. I also include GeForce cards for the sake of comparison.

While we usually run our benchmarks through Fraps or FCAT, both solutions are designed for use under DirectX, and consequently don't work with Mantle. As a result, we're forced to use the built-in benchmarking tools supplied with Thief and Battlefield 4. Thankfully, the command console of Battlefield's Frostbite engine is quite robust, allowing us to capture detailed frame time variance data. As for Thief, we can only record game-supplied frame rates, so frame time data is not available.

As you'll see later in this story, we needed a specific mid-range card with 4 GB of memory for a special test. MSI sent over its Radeon R9 270X Gaming 4G, armed with a Twin Frozr IV cooler and three operating modes: silent (1050 MHz), gaming (1080 MHz), and overclocked (1120 MHz).

High-end graphics cards require a substantial amount of power, so XFX sent us its PRO850W 80 PLUS Bronze-certified power supply. This modular PSU employs a single +12 V rail rated for 70 A. XFX claims continuous (not peak) output of up to 850 W at 50 degrees Celsius.

We've almost exclusively eliminated mechanical disks in the lab, preferring solid-state storage for alleviating I/O-related bottlenecks. Samsung sent all of our labs 256 GB 840 Pros, so we standardize on these exceptional SSDs.


FM2+
System
AM3+
System
LGA 1155
System
LGA 1150
System
MotherboardASRock FM2A88X-ITX+, Socket FM2+ Gigabyte GA-990FXA-UDS, Socket AM3+
Asus P8Z77-V LX,
LGA 1155
ASRock Z87 Pro3, LGA 1150
ProcessorAMD A10-7850K, Quad-Core, 3.7 GHz (4 GHz maximum Turbo Core)
AMD FX-8350, Octa-Core, 4 GHz (4.2 GHz maximum Turbo Core)
AMD FX-4170
, Quad-Core, 4.2 GHz (4.3 GHz maximum Turbo Core)
Intel Core i3-3220, Dual-Core, Hyper-Threading, 3.3 GHzIntel Core i7-4770K, Quad-Core, Hyper-Threading, 3.5 GHz (3.9 GHz maximum Turbo Boost)
Memory8 GB Corsair Vengeance LP (2 x 4 GB) 1600 MT/s, CAS 9-9-9-24-1T
GraphicsGeForce GTX 650 2 GB GDDR5
GeForce GTX 660 2 GB GDDR5
GeForce GTX 780 Ti 3 GB GDDR5

Radeon R7 250X 1 GB GDDR5
Radeon R9 270 2 GB GDDR5
Radeon R9 270X 4 GB GDDR5
Radeon R9 290X 4 GB GDDR5
System DriveSamsung 840 Pro, 256 GB SSD, SATA 6Gb/s
Power Supply
XFX PRO850W, 850 W, 80 PLUS-certified
Software and Drivers
Operating System
Microsoft Windows 8 Pro x64
DirectX
DirectX 11
Graphics Drivers
AMD Catalyst 14.3 Beta (14.4 Beta demonstrates some performance detriment issues)
Nvidia GeForce 337.88 WHQL

And here are the benchmark details:

Benchmark Configuration
3D Games
Thief
Built-in benchmark
Battlefield 4
THG custom benchmark, 90 seconds
Display all 107 comments.
Top Comments
  • 10 Hide
    Memnarchon , July 16, 2014 1:07 AM
    Mantle is not glide. 3DFX had 85% of the GPU share when they had glide so it was easier for developers to use the glide (AMD has 35% right now).
    But Mantle did something really good for gamers. Till now Microsoft with no competition didn't gave too much attention in performance optimising the DirectX. They gave Microsoft a reason to improve DirectX (so they will bring DX12) in the way mantle works. This benefits all the gamers.
    Unfortunately I have a feeling that Microsoft will give DirectX12 only with Windows9 (due to kernel limitations at their pockets).
    If this will be true then Mantle might have more life than most users expected to (since it wil take time for windows 9 to rule the market share)...
Other Comments
  • 0 Hide
    Amdlova , July 16, 2014 12:44 AM
    memory problems... so my 260x with 1gb will sufferrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
  • 10 Hide
    Memnarchon , July 16, 2014 1:07 AM
    Mantle is not glide. 3DFX had 85% of the GPU share when they had glide so it was easier for developers to use the glide (AMD has 35% right now).
    But Mantle did something really good for gamers. Till now Microsoft with no competition didn't gave too much attention in performance optimising the DirectX. They gave Microsoft a reason to improve DirectX (so they will bring DX12) in the way mantle works. This benefits all the gamers.
    Unfortunately I have a feeling that Microsoft will give DirectX12 only with Windows9 (due to kernel limitations at their pockets).
    If this will be true then Mantle might have more life than most users expected to (since it wil take time for windows 9 to rule the market share)...
  • -3 Hide
    ZolaIII , July 16, 2014 1:07 AM
    Next Open GL specification is almost redy & will be announced next month in (ironically) Vancouver Canada. Naturally it will be available on all platforms (that want to integrate OGL) & it will be addressing lover overheads. As gaming market is getting more fragmented it's getting natural to develop for api that can run on all platforms.
  • 9 Hide
    tomfreak , July 16, 2014 2:18 AM
    Is the battlefield 4 tested in multi-player?

    [Answer By Cleeve:]

    It was tested in single player, as its easier to get consistent results. We're trying to eliminate variables except the graphics engine as much as possible.
  • -3 Hide
    chaosmassive , July 16, 2014 2:51 AM
    "AMD Mantle: AMD's PhysX "

    please do a research what is Mantle before post
    it seems you don't understand what are you writing about.

    [Answer by Cleeve:]

    I think the problem may be that you don't understand the context of the answer, which does not equate Mantle with PhysX on a technical level.

    We equate Mantle with PhysX in the sense that it's a value-add that assists in a limited number of games. Its not a universal advantage.
  • 0 Hide
    ta152h , July 16, 2014 4:47 AM
    As a programmer of 30 years, that's arguably the worst description of an API I have heard.

    An API is a set of commands, with required parameters, a software package presents to another application that wishes to use its services. It's essentially the language to use the services it provides.

    Mantle isn't just an API. It's an abstraction layer that makes it unnecessary for the developer to write directly to the hardware, which is tedious, time-consuming and extremely difficult to do on a large product. The API is what Mantle accepts to tell it what to do, and what the programmer must learn to use it, but it is NOT all Mantle is. It's just how to talk to it.

    A pure API would be something someone demented would write, because it would mean you could issue commands to do nothing. I'm guessing Apple is patenting this technology now.

    [Answer by Cleeve]

    I'm sorry you feel that way. I don't agree as I feel it's a useful high-level primer for folks who haven't been programming for 30 years, but you're certainly entitled to your opinion. :) 
  • -4 Hide
    elbert , July 16, 2014 4:54 AM
    On page 4 its clear mantle doesn't work well with Intel's Hyper-Threading but what about Intel's 6 core CPU's? Does mantle give an Intel 6 core a bigger advantage in games that dx? I wouldn't throw mantle under the bus just due to its unoptimized for Hyper-Threading. Please add an Intel's 6 core to these tests.
  • 0 Hide
    SteelCity1981 , July 16, 2014 5:55 AM
    I can see intel supporting mantle in its future gpu hardware. I mean just recently intel asked amd for its mantles api specs. So intel using mantle in the future is much more plausible then Nvidia using mantle.
  • 2 Hide
    K-beam , July 16, 2014 6:55 AM
    Mantle can actually become quite relevant in any next-gen ultra-portable x86 APUs that AMD come up with. Especially useful if coupled with proper integration with Steam-OS.
  • 6 Hide
    cypeq , July 16, 2014 7:07 AM
    How I see line graph with 15 positions.



    (Image viewable on Forum here:) 
    http://www.tomshardware.com/forum/id-2221312/amd-mantle-graphics-api-tested-depth.html#13731289
  • 1 Hide
    serendipiti , July 16, 2014 7:10 AM
    Nice analysis.

    Probably there wasn't a DirectX 12 on the works because of maturity (what else add to DirectX that it pays for?) and Mantle showed the way.

    I don't like the comparation to PhysX (because of what has finally become) and the fact that Mantle won´t bring new features to games.

    It is Mantle here to stay, probably, sadly, not. Its success as an universal graphics API is complicated:
    if it was on time for PS4, XBox One (M$...) and Linux / Valve Steam OS and above all: Mobile devices (ARM...), if it could get NVidia involved also, perhaps Mantle would gain enough momentum to become an accepted universal standard.

    The other battle field is on the developer front: get major 3D Engines to support a Mantle code path (and what are the costs related to maintaining that code path from a developer standpoint).

    ta512, as deep as a naming convention discussion can go, what AMD is doing is an API which implements a Hardware Abstraction Layer for the graphics cards of any hardware vendor (AMD, NVidia, Intel). What have tested here is the AMD own implementation of that API made to run on AMD hardware.

    What is open source is the API, not the AMD own implementation.

    This Is like discussing if ARM it is a processor or an instruction set... and what / where the difference is.

    In a case scenario where you have BattleField 4 running on an i7 with an NVidia card with a Mantle enabled driver (let's suppose Nvidia gets on the Mantle train) the only thing AMD would have done would be decide how the game will talk to the graphics card, but neither the game, the driver, the graphics card, none of these would be AMD's work,,,

    Cheers
  • 4 Hide
    cleeve , July 16, 2014 7:12 AM
    Quote:
    How I see line graph with 15 positions.


    Urmehghurd, I LOLed. Nice one.

    Yeah, this is a little ugly. Note that I made the mantle results thicker so it'd be slightly easier to pick out the Mantle trends, but yeah. Would be a little easier to pinpoint specific cards with less data.
  • 0 Hide
    guskline , July 16, 2014 7:19 AM
    Very interesting article. I have a Sapphire R9 290 Tri-X in my FX8350 rig and BF4 has slightly faster fps in Mantle than in DirectX
  • 3 Hide
    Alethinos , July 16, 2014 7:21 AM
    Is it just me, or is that last Frame Time Variance graph on the 8th page labeled wrong? I wouldn't think frame time variance would be displayed in frames per second, and if it was, the majority of the items on the chart would (hopefully) not be between 0-10 if "higher is better".

    Maybe I misunderstand what the chart is trying to show.

    [Answer by Cleeve:]

    Doh! You're quite right, I'll get that fixed.
  • 1 Hide
    ddpruitt , July 16, 2014 7:25 AM
    I think Tom's doesn't really understand the difference between the OS API and a regular API. The entire first page muddies the discussion. Mantle isn't an API it's the low level driver behind the API, and that can be made as lean or as bloated as possible with no changes to the API itself. As an example Android uses the Java API but it's a completely different implementation than what you would see on an EA game.

    I'm also concerned that Battlefield was used as a benchmark. Although I understand that the available benches are limited by those that support Mantle Battlefield is notoriously difficult to get consistent results with, I would consider the differences well within experimental error and therefore unreliable.
  • 3 Hide
    Onus , July 16, 2014 7:30 AM
    Quote:
    Alright, I think I have a handle on the basics of Mantle. What now?

    For the sake of professional image, please remember that Alright is Alwrong. All right?
    [/nazi]
    To the meat of the article, it does look like Mantle will help some of AMD's weaker CPUs some of the time, but if that isn't what you have, Mantle does not make a large enough difference to influence buying decisions (sort of like PhysX; in only a few cases does it really matter). If your system is one of those cases, it is a pretty substantial difference, but for many people it won't be.

  • 1 Hide
    cleeve , July 16, 2014 7:34 AM
    Quote:
    I think Tom's doesn't really understand the difference between the OS API and a regular API. The entire first page muddies the discussion. Mantle isn't an API it's the low level driver behind the API


    I'm not sure I read you here. There's a Mantle API and a Mantle driver, these are separate entities.

    I've been at briefings and talked to developers, and it's been made very clear that Mantle is a graphics API, which requires a Mantle-compatible driver to work with specific hardware.

    Quote:
    I'm also concerned that Battlefield was used as a benchmark. Although I understand that the available benches are limited by those that support Mantle Battlefield is notoriously difficult to get consistent results with, I would consider the differences well within experimental error and therefore unreliable.


    I'll have to disagree on this one. We have a BF4 test run that has been extremely reliable and repeatable for us, usually with less than 1.5 FPS difference in three runs.

    When there's an issue found in data, it's easy to assume its the test. Sometimes it's what you're testing, though. We can't ignore issues out of convenience.

  • 3 Hide
    Yuka , July 16, 2014 7:53 AM
    You guys need to test MP... I know its hard and blah blah, but you can just add error margin to results and just describe the differences if you guys notice any.

    You guys are testing a grippy car in just a drag race. That's unfair. You need to add cornering as well.

    Cheers!
Display more comments
React To This Article