Re: TTM placement & caching issue/questions
From: Thomas Hellstrom <hidden>
Date: 2014-09-04 10:23:48
Also in:
dri-devel
On 09/04/2014 11:43 AM, Benjamin Herrenschmidt wrote:
On Thu, 2014-09-04 at 11:34 +0200, Daniel Vetter wrote:quoted
On Thu, Sep 04, 2014 at 09:44:04AM +0200, Thomas Hellstrom wrote:quoted
Last time I tested, (and it seems like Michel is on the same track), writing with the CPU to write-combined memory was substantially faster than writing to cached memory, with the additional side-effect that CPU caches are left unpolluted. Moreover (although only tested on Intel's embedded chipsets), texturing from cpu-cache-coherent PCI memory was a real GPU performance hog compared to texturing from non-snooped memory. Hence, whenever a buffer could be classified as GPU-read-only (or almost at least), it should be placed in write-combined memory.Just a quick comment since this explicitly referes to intel chips: On desktop/laptop chips with the big shared l3/l4 caches it's the other way round. Cached uploads are substantially faster than wc and not using coherent access is a severe perf hit for texturing. I guess the hw guys worked really hard to hide the snooping costs so that the gpu can benefit from the massive bandwidth these caches can provide.This is similar to modern POWER chips as well. We have pretty big L3's (though not technically shared they are in a separate quadrant and we have a shared L4 in the memory buffer) and our fabric is generally optimized for cachable/coherent access performance. In fact, we only have so many credits for NC accesses on the bus...
Thanks both of you for the update. I haven't dealt with real hardware for a while.. /Thomas