What this graph says is that the performance scales much better with AMD True Core Scalability than Hyper Threading.
Yes, an 8 core CPU is better than a 4 core CPU when it comes to running more threads, and that is all those graphs actually prove. With intel it was 8 threads on 8 cores then 16 threads on 8 cores while with AMD it was 8 threads on 16 cores and then 16 threads on 16 cores. The fact intel showed any speed gain at all should astound you as 32 threads on 16 cores of AMD processors would run about as fast if not slower than 16 threads on 16 cores.
What those graphs proved was that hyper-threading is not a replacement for twice as many cores. If you actually read what I said earlier you would see why. Where as more cores means more clock edges doing digital logic, hyper-threading just means less wasted clock edges waiting for I/O as it switches to the virtual core when the main thread on that core is I/O locked.
The fact still remains that an 8 cored I7 (will be comming soon) with its hyper-threading running 16 threads will be faster than a 8 cores AMD processor running 16 threads. Where as the 8 cored I7 can run 8 threads continiously and the other 8 during times threads are I/O locked, the AMD processor can only run 8 threads at any time meaning that 8 threads will get no attention at all at any given time.
Especially for I/O heavy tasks (like data processing), you can obtain a 33% increase in performance without any more cores with hyper-threading.
People foolishly think hyper-threading means that they have twice as many cores (the mistake the comparison makes). Hyper threading instead allows other threads to run with virtually no distruption to the main thread on each core. Inorder to do this the processor appears in the opperating system as having twice as many cores so that threads can be placed to run when the other core is I/O locked. However if you run Windows 7 or other OS with good hyper-threading support you will notice that it will perfer to place threads on different cores before it places them on the hyper threading cores which is the true behaviour that should occur. Sadly it reports CPU usage out of both real and virtual cores meaning that from 50% to 100% usage can be nothing more than a 33% increase. Hopefully in future Windows will display the virtual hyper-thread cores inside the main core so that processor usage gets reported back correctly.
So what does hyper-threading actually do for you?
If you are processing data like video rendering, your 4 core CPU could run 8 threads of encoding and so get an up to 33% speed increase over a processor with only 4 cores and no hyperthreading.
If you are running a game using 4 threads, your background tasks which eat nominal time could be running within the I/O locked wasted time of the game so equivently become free rather than having to time splice them to a main core to run.
The kernal wastes less time perfoming time splicing in overloaded environments as the processor has twice as many threads load at any time (and will be running, even if slowly, on the virtual cores).