You are not logged in.
I recently changed my Toshiba Satellite L70-B-12H with i7-4700 HQ processors, for an ASUS GL553VD with i7-7700 HQ processors.
I perform some numerical analysis with a program written in C/C++ interfaced to GNU Octave with Mex; it uses parallel threads thanks to Open MP.
I am disapointed to see that my new computer, with the better processors, is up to 2 times slower than the older, with the lesser processors, to perform the same task. I checked the basics: `grep "cpu MHz" /proc/cpuinfo` shows that all 8 CPUs are in use, and that they all go up to 3.40 GHz. Although the i7-7700 HQ are supposed to be able to go up to 3.80 GHz, I think this cannot be when all 8 are in use; anyway this cannot account for the lesser performance since the i7-4700 HQ are themselves limited to 3.40 GHz.
My question: is there anything obvious that could explain the lesser performance with better hardware? Any workaround?
Most important differences I can think of:
[it]the older computer had 16 GB of RAM[/it], against only 8 GB for the newer. The task at hand requires easily 2.4 GB, so memory might be a factor. But would this explain such a difference?
Graphic cards are different, but can a simple C/C++ program benefit from GPU anyway? and again, the new one is supposed to be better, I checked that it is working with the proprietary nvidia drivers.
edit: changed 7400 to 4700
Last edited by $nake (2017-11-17 09:14:41)
Offline
According to Intel there is no i7-7400...
https://ark.intel.com/search?q=i7-7400
What processor is it really?
Edit - I guess you meant i7-4700HQ.
Those processors look fairly comparable (apart from the newer IPC) - https://ark.intel.com/compare/97185,75116
Could it possibly be a memory bandwidth issue if you had 2 or more sticks of RAM in the older machine but only 1 in the newer?
Have you configured the power-saving differently on each laptop?
Last edited by Slithery (2017-08-19 20:17:41)
Offline
I would speculate that it could be the Intel microcode working around CPU bugs, e.g. hyper-threading bug.
I suggest comparing with/without microcode loaded.
Offline
I would also suggest keeping an eye on temperatures, there is always the possibility that the cpu is throttling due to high temperatures.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Thanks for the reply, it is indeed i7-4700HQ.
I would be surprised that the difference comes from the memory only, but again this seems the main difference between the two setting.
I'll have a look at this "microcode" issue and report back.
As for the temperature, I should have mentioned that I monitored it during the task, and rarely going higher than 70°C. For the sake of completeness, I must say that in many trials, I have seen a couple of CPU throttling events in dmesg, but in most trials the performance was poor with no mention of CPU throttling.
Offline
I am not entirely sure what is this "microcode" and how to load it. Following the wiki I installed intel-ucode and added the initrd /intel-ucode.img in my boot config. After reboot I check
$ dmesg | grep microcode
[ 0.000000] microcode: microcode updated early to revision 0x5e, date = 2017-04-06
[ 1.520152] microcode: sig=0x906e9, pf=0x20, revision=0x5e
[ 1.520387] microcode: Microcode Update Driver: v2.2.
so I guess microcode is now loaded. However, this did not change the performances on my task.
Offline
For the record: the lesser performance by the supposedly better computer came indeed from a _memory_ issue. However, it was not in term of absolute use of memory, but because of _memory bandwidth_ (in my understanding, how fast can data go in and out of RAM). On the Toshiba, I had "dual channel" memory, that is the two memory sticks could be accessed in parallel. I added a memory stick to the ASUS, and I recovered the expected slightly better performances.
Last edited by $nake (2018-10-05 12:43:57)
Offline