LLVMpipe Scaling With Intel's Core i7 Gulftown
When finding out that an Intel Core i7 970 "Gulftown" CPU was on the way, which boasts six physical cores plus another six logical cores via Hyper Threading, immediately coming to mind was to try out this latest Intel 32nm processor with the Gallium3D LLVMpipe driver. There's a lot to love about Gallium3D when it comes open-source Linux graphics drivers with the possibilities being presented by the different state trackers (such as native Direct3D 11 support on Linux) and the hardware drivers themselves being more advanced, easier to write, and eventually should be much faster than the classic Mesa drivers for Linux. One of the drivers that has especially been of interest is LLVMpipe, which is an attempt to finally make a useful CPU-based software rasterizer for Linux by leveraging the Low-Level Virtual Machine infrastructure. Here is our introductory article to LLVMpipe and even with a Core i7 "Bloomfield" processor the driver is very demanding, but with Intel's Gulftown the results are somewhat surprising as we experiment with how this CPU-based driver scales up to twelve threads.
From the BIOS of the Intel X58 motherboard we used for testing, the number of enabled cores can be configured (from one through six) and Hyper Threading is easily controlled. This makes for very easy testing to see how well LLVMpipe is able to scale on the Core i7 970 and the performance of Intel's Hyper Threading on their modern CPUs.
The test system is the same as our Core i7 970 Linux review, which consisted of the Intel Core i7 970 (obviously), an ASRock X58 SuperComputer motherboard, 3GB of CSX DR3 system memory, NVIDIA GeForce GTX 460 Fermi, and a 64GB OCZ Vertex SSD. The operating system is still Ubuntu 10.10, but after finishing our Intel Gulftown review we upgraded to the Linux 2.6.36 64-bit kernel stable release and we also pulled the latest Mesa code from Git on 2010-10-23 for building LLVMpipe. The Mesa Git code-base is considered Mesa 7.10-devel and provides Gallium 0.4. The rest of the system was the same with GNOME 2.32.0, X.Org Server 1.9.0, GCC 4.4.5, and the EXT4 file-system.
The benchmarks we ran with the LLVMpipe entirely on the CPU without the assistance of the NVIDIA GeForce GTX 460 graphics card was OpenArena, World of Padman, Urban Terror, VDrift, and Warsow. With each OpenGL game we ran them at 640 x 480, 800 x 600, 1024 x 768, 1280 x 1024, 1680 x 1050, and 1920 x 1080. Additionally, each step of the way was run when there were 1, 2, 3, 4, 5, and 6 cores enabled. Lastly, we also ran all settings when all six cores were enabled plus Intel Hyper Threading to provide a total of 12 threads. Of course, the Phoronix Test Suite drove all this testing. This is also another Phoronix article taking advantage of the new graphing capabilities found with Iveland and OpenBenchmarking.org, your comments are welcome.