I have had this issue too since High Sierra 10.13, and it didn’t get better with updates (still present on 10.13.3). I have a Early 2013 MacBook Pro (Intel HD 4000 + nVidia GT 650m).
I did some testing, using iStat Menus to check which GPU is active and how much GPU memory is used.
So, in my experience:
1. When the integrated GPU is active, everything is fine.
Scrolling and every other macOS transition (changing space, opening mission control, etc…) are smooth as they should be and smoother than they was on Sierra.
iStat Menus show a GPU memory usage of around 25-40%.
2. If the discrete nVidia 650m GPU is active (because Photoshop and/or some other software that trigger discrete GPU activation are open) and Safari or another browser are open, the GPU memory usage is between 115% and 175%! and every transition is sluggish, and macOS is almost unusable. Multitasking between apps is very slow and you have to wait a second or two at every front app focus switch. Scrolling down in a webpage in browsers is awfully jerky.
3. If the discrete nVidia 650m GPU is active, but Safari is closed or I disable hardware acceleration in Chrome or Firefox, the graphic memory usage is still high, between 75% and 105%, but the general feel is waaay better, much less sluggish.
I don’t have game benchmark from when I had Sierra installed, but full screen games are still playable, maybe there is a performance hit but is much less noticeable than the macOS transitions and browsers scrolling.
I tried to install nVidia Driver but I didn’t see big improvements, same very high GPU memory usage. But I had a lot of graphic glitches so I reverted to original Apple driver.
I also tried a clean install of 10.13.3 on a separate partition, no luck, the bug behaves exactly the same.
So I suggest to use Chrome or Firefox with hardware acceleration disabled when the discrete GPU is active, until the bug is fixed (if it will ever be).
Do someone know if hardware acceleration can be disabled in Safari?
Can someone with a AMD GPU and iStat Menus installed do the same tests I did, just to know if the bug is present for them also?