Brunelleschi
Lurker
NVIDIA is always the first to bring new innovations into the mobile world. With it's Tegra 2, it brought the first dual-core SoC (system-on-chip), and then it redefined performance again by introducing the world's first quad-core processor, with the latest Tegra 3. We can see that Tegra is pretty much strong with the CPU only. Besides the CPU, NVIDIA Tegra 3 has many other issues, which simply have to be addressed, especially with the new 1080p tablet era, which is beginning now. I honestly hope that NVIDIA's issues will all be addressed in the upcoming SoC in NVIDIA's roadmap, Tegra 4, codenamed 'Wayne'. Tegra has specific problems with its GPUs (which is strange, considering NVIDIA is a GPU company) and also with poor memory bandwidth, both of which limit gaming performance.
Memory bandwidth has been the ultimate bottleneck for performance in both Tegra SoCs. Tegra 3 featured a single-channel, 32-bit wide LPDDR2-1066 or DDR3L-1500 (T30), and DDR3-1600 (T33) memory controller. Now let's take today's best HDtablet for gaming, the iPad 2, which has a dual-channel, 32-bit wide (total 64-bit) LPDDR2-1066 memory controller. Even though Tegra 3 supports DDR3, the iPad 2 still gives twice the fill rate, simply because its memory is dual-channel. To support the high-resolution Retina Display, the New iPad uses a quad-channel (total 128-bit wide) LPDDR2-1066 memory controller, giving about four times the fill rate of Tegra T33, which will be found in 1080p tablets. If Tegra 3 is barely ready to support todays 1280 x 800 tablets, it's not even close to supporting the upcoming 1080p tablets. All other SoC vendors (Texas Instruments' OMAP, Samsung Exynos, Qualcomm Snapdragon, and Apple) have already moved to dual-channel memory solutions, so Tegra is really behind the competition in terms of memory bandwidth.
Now let's talk about the GPU. Tegra is realtively new to producing mobile GPUs, having only produced a couple, so far, while most of the competition, mostly Adreno GPUs and Imagination Technologies' PowerVR GPUs are in the mobile world for a long time, and have already made many GPUs, therefore, it is natural that the competition has developed much better technology over time, while Tegra still has very old technology.
Tegra 3 uses an SIMD architecture that uses dedicated, separate pixel shader cores and vertex shader cores, 8 pixel and 4 vertex shader cores, with a total of 12 cores. Each of these cores can do only one MAD (Multiply + Add) operation per clock, and clock speeds are available from 400MHz to 500MHz. At 500MHz, a GPU like that has the power of 12 GFLOPS. The PowerVR SGX543MP2 in the iPad 2 uses PowerVR's own USSE technology, which is a unified shader architecture, meaning that each core can either act as a pixel or a vertex shader core, depending on the current workload for each type of shader. Each core in this GPU can do 4 MADs per clock, which, at 250MHz, its target frequency, achieves 16 GFLOPS. It's startling how per-core efficiency matters here; with 1/3 the core count of Tegra 3, and at half the frequency, the SGX 543MP2, has 25% more compute power than Tegra 3. The smaller core count and lower clock speed also brutally enhances power efficiency. at the same clock speed, a PowerVR-class GPU with only three cores is enough to equal Tegra 3's performance, with 12 cores. Another point I'd like to make is that, with Tegra's dedicated core architecture, the GPU can only have 8 GFLOPS pixel shading power, and 4 GFLOPS vertex shading power, but with PowerVR's unified shader architecture, it can give 16 GFLOPS pixel shading power as much as 16 GFLOPS vertex shading power. Unified architectures are a great way to make sure peak performance is always given, and that no cores idle, no matter what the workload mix for pixel and vertex shaing instructions is.
Another big bottleneck for performance in Tegra GPUs is related to rendering techniques. When rendering, GPUs would normally render every incoming instruction, and would also render objects that wouldn't be currently visible for the player, for example, an object that would be hidden behind another. Consider that, in a game, one would have two buildings, one behind the other. For the player, one building wouldn't be visible, because it, or at least part of it would be hidden behind the building in front of it. Even though it is not currently visible, or fully visible, the GPU would go through all the work of rendering that entire building, therefore, compute power and memory bandwidth would be wasted. This is called overdraw. Tegra is an IMR (Immediate Mode Renderer) with an overdraw-preventing technique called Early-z rejection, which has proved to be utterly useless, considering the overdraw-caused lag I see on my Tegra-powered ASUS Transformer Prime. PowerVR, however, has had time to develop their technologies, thus, their GPUs now have a rendering technique that removes overdraw completely, Imagination Technologies' own TBDR (Tile Based Deffered Rendering) GPU rendering technique. Overdraw is a very big problem for Tegra, because, in games where overdraw happens a lot (games with large areas), the GPU chokes more easily, mostly because of its rather weak vertex shading performance and especially its weak memory bandwidth, and it is noteworthy that the higher-resolution textures are used in games, the harder it is to render these textures, hence making overdraw more costly, which limits texture quality for tablet games, and this will reflect mostly with 1080p tablets, where games which will run at 1080p will make overdraw even more concerning, because of the high resolution.
So these are the problems that NVIDIA needs to adress for Tegra Wayne. What are my expectations? Well:
- Dual-channel memory controllers
- Better per-core efficiency for the GPU (at least 2 MADs per core, but preferably 4 MADs per core). It seems that Tegra Wayne will be having 24 shader cores. If these are the 'one MAD per core' cores used in previous Tegra SoCs, I think it would be much more preferable to reduce core count and clock speed, and increase per-core efficiency to give equal performance with better power efficiency
- Some useful technique for removing overdraw, perhaps they can use elements from their overdraw solution in their PC GPUs
- A unified shader architecture
- Rumors are that Wayne's GPU will be based on NVIDIA's new Kepler architecture, which offers more performance with better power efficiency, perfect for mobile devices, which need to be low-power. I'd love to see that in Wayne
- 1MB L2 cache is a bit too little for a quad-core CPU, NVIDIA has to increase it to 2MB
- Given the time it's planned to be released, Tegra 4 Wayne will have to support OpenGL ES 3.0
- Optimize 2D rendering. Seriously, I own a Tegra-powered tablet, and even a simple 2D game such as NinJump lags every now and then. 2D rendering is extremely basic, and even though it's not exactly a GPU's most desirable feature, it should be optimized and get good performance.
It's important to be ready to support 1080p tablets, as much as keeping support for 1280 x 800 lower-end devices, which are probably still gonna come out, not to mention smartphones, which tend to have even lower resolutions. Since 1920 x 1200 tablets have 1.5x the resolution of 1280 x 800 tablets, I think NVIDIA should release at least two versions of Wayne, one should be 1.5x better than the other, to have equal performance for both HD and full HD tablets. In my mind, that would mean that one would have dual-channel memory, the other would have triple-channel memory (I'm not sure if triple-channel exists, but at any rate it probably does), and of course one would have a GPU 50% better than the other.
I think it's time NVIDIA took the lead in mobile GPUs, having done so previously with its PC GPUs. NVIDIA has to keep up with expectations, and gaming is a key point in mobile computing these days. I expect Tegra Wayne to be able to equal the compute power of the PowerVR SGX543MP4 in the New iPad, given that the 1080p tablet era is beginning now. That would put my expectation around 32 GFLOPS, however, I believe NVIDIA should do what Apple did with the iPad 2: boost itself above all competition, as in, while in 2011 mobile GPUs were achieving far less than 10 GFLOPS, Apple got itself to 16 GFLOPS. I believe NVIDIA should push the mobile GPU market like that. I think NVIDIA has the capacity to get its mobile GPUs at the top of the list in any and every 3D benchmark, leaving the competition far behind. Whether in HD or full HD, NVIDIA should at least try to get, or get past, the iPad 2/New iPad performance level, which has still never been surpassed.
Memory bandwidth has been the ultimate bottleneck for performance in both Tegra SoCs. Tegra 3 featured a single-channel, 32-bit wide LPDDR2-1066 or DDR3L-1500 (T30), and DDR3-1600 (T33) memory controller. Now let's take today's best HDtablet for gaming, the iPad 2, which has a dual-channel, 32-bit wide (total 64-bit) LPDDR2-1066 memory controller. Even though Tegra 3 supports DDR3, the iPad 2 still gives twice the fill rate, simply because its memory is dual-channel. To support the high-resolution Retina Display, the New iPad uses a quad-channel (total 128-bit wide) LPDDR2-1066 memory controller, giving about four times the fill rate of Tegra T33, which will be found in 1080p tablets. If Tegra 3 is barely ready to support todays 1280 x 800 tablets, it's not even close to supporting the upcoming 1080p tablets. All other SoC vendors (Texas Instruments' OMAP, Samsung Exynos, Qualcomm Snapdragon, and Apple) have already moved to dual-channel memory solutions, so Tegra is really behind the competition in terms of memory bandwidth.
Now let's talk about the GPU. Tegra is realtively new to producing mobile GPUs, having only produced a couple, so far, while most of the competition, mostly Adreno GPUs and Imagination Technologies' PowerVR GPUs are in the mobile world for a long time, and have already made many GPUs, therefore, it is natural that the competition has developed much better technology over time, while Tegra still has very old technology.
Tegra 3 uses an SIMD architecture that uses dedicated, separate pixel shader cores and vertex shader cores, 8 pixel and 4 vertex shader cores, with a total of 12 cores. Each of these cores can do only one MAD (Multiply + Add) operation per clock, and clock speeds are available from 400MHz to 500MHz. At 500MHz, a GPU like that has the power of 12 GFLOPS. The PowerVR SGX543MP2 in the iPad 2 uses PowerVR's own USSE technology, which is a unified shader architecture, meaning that each core can either act as a pixel or a vertex shader core, depending on the current workload for each type of shader. Each core in this GPU can do 4 MADs per clock, which, at 250MHz, its target frequency, achieves 16 GFLOPS. It's startling how per-core efficiency matters here; with 1/3 the core count of Tegra 3, and at half the frequency, the SGX 543MP2, has 25% more compute power than Tegra 3. The smaller core count and lower clock speed also brutally enhances power efficiency. at the same clock speed, a PowerVR-class GPU with only three cores is enough to equal Tegra 3's performance, with 12 cores. Another point I'd like to make is that, with Tegra's dedicated core architecture, the GPU can only have 8 GFLOPS pixel shading power, and 4 GFLOPS vertex shading power, but with PowerVR's unified shader architecture, it can give 16 GFLOPS pixel shading power as much as 16 GFLOPS vertex shading power. Unified architectures are a great way to make sure peak performance is always given, and that no cores idle, no matter what the workload mix for pixel and vertex shaing instructions is.
Another big bottleneck for performance in Tegra GPUs is related to rendering techniques. When rendering, GPUs would normally render every incoming instruction, and would also render objects that wouldn't be currently visible for the player, for example, an object that would be hidden behind another. Consider that, in a game, one would have two buildings, one behind the other. For the player, one building wouldn't be visible, because it, or at least part of it would be hidden behind the building in front of it. Even though it is not currently visible, or fully visible, the GPU would go through all the work of rendering that entire building, therefore, compute power and memory bandwidth would be wasted. This is called overdraw. Tegra is an IMR (Immediate Mode Renderer) with an overdraw-preventing technique called Early-z rejection, which has proved to be utterly useless, considering the overdraw-caused lag I see on my Tegra-powered ASUS Transformer Prime. PowerVR, however, has had time to develop their technologies, thus, their GPUs now have a rendering technique that removes overdraw completely, Imagination Technologies' own TBDR (Tile Based Deffered Rendering) GPU rendering technique. Overdraw is a very big problem for Tegra, because, in games where overdraw happens a lot (games with large areas), the GPU chokes more easily, mostly because of its rather weak vertex shading performance and especially its weak memory bandwidth, and it is noteworthy that the higher-resolution textures are used in games, the harder it is to render these textures, hence making overdraw more costly, which limits texture quality for tablet games, and this will reflect mostly with 1080p tablets, where games which will run at 1080p will make overdraw even more concerning, because of the high resolution.
So these are the problems that NVIDIA needs to adress for Tegra Wayne. What are my expectations? Well:
- Dual-channel memory controllers
- Better per-core efficiency for the GPU (at least 2 MADs per core, but preferably 4 MADs per core). It seems that Tegra Wayne will be having 24 shader cores. If these are the 'one MAD per core' cores used in previous Tegra SoCs, I think it would be much more preferable to reduce core count and clock speed, and increase per-core efficiency to give equal performance with better power efficiency
- Some useful technique for removing overdraw, perhaps they can use elements from their overdraw solution in their PC GPUs
- A unified shader architecture
- Rumors are that Wayne's GPU will be based on NVIDIA's new Kepler architecture, which offers more performance with better power efficiency, perfect for mobile devices, which need to be low-power. I'd love to see that in Wayne
- 1MB L2 cache is a bit too little for a quad-core CPU, NVIDIA has to increase it to 2MB
- Given the time it's planned to be released, Tegra 4 Wayne will have to support OpenGL ES 3.0
- Optimize 2D rendering. Seriously, I own a Tegra-powered tablet, and even a simple 2D game such as NinJump lags every now and then. 2D rendering is extremely basic, and even though it's not exactly a GPU's most desirable feature, it should be optimized and get good performance.
It's important to be ready to support 1080p tablets, as much as keeping support for 1280 x 800 lower-end devices, which are probably still gonna come out, not to mention smartphones, which tend to have even lower resolutions. Since 1920 x 1200 tablets have 1.5x the resolution of 1280 x 800 tablets, I think NVIDIA should release at least two versions of Wayne, one should be 1.5x better than the other, to have equal performance for both HD and full HD tablets. In my mind, that would mean that one would have dual-channel memory, the other would have triple-channel memory (I'm not sure if triple-channel exists, but at any rate it probably does), and of course one would have a GPU 50% better than the other.
I think it's time NVIDIA took the lead in mobile GPUs, having done so previously with its PC GPUs. NVIDIA has to keep up with expectations, and gaming is a key point in mobile computing these days. I expect Tegra Wayne to be able to equal the compute power of the PowerVR SGX543MP4 in the New iPad, given that the 1080p tablet era is beginning now. That would put my expectation around 32 GFLOPS, however, I believe NVIDIA should do what Apple did with the iPad 2: boost itself above all competition, as in, while in 2011 mobile GPUs were achieving far less than 10 GFLOPS, Apple got itself to 16 GFLOPS. I believe NVIDIA should push the mobile GPU market like that. I think NVIDIA has the capacity to get its mobile GPUs at the top of the list in any and every 3D benchmark, leaving the competition far behind. Whether in HD or full HD, NVIDIA should at least try to get, or get past, the iPad 2/New iPad performance level, which has still never been surpassed.