Data prefetching for graphics data processing
Embodiments are generally directed to data prefetching for graphics data processing. An embodiment of an apparatus includes one or more processors including one or more graphics processing units (GPUs); and a plurality of caches to provide storage for the one or more GPUs, the plurality of caches including at least an L1 cache and an L3 cache, wherein the apparatus to provide intelligent prefetching of data by a prefetcher of a first GPU of the one or more GPUs including measuring a hit rate for the Li cache; upon determining that the hit rate for the L1 cache is equal to or greater than a threshold value, limiting a prefetch of data to storage in the L3 cache, and upon determining that the hit rate for the L1 cache is less than a threshold value, allowing the prefetch of data to the L1 cache.
1 . An apparatus comprising:
one or more processors including one or more graphics processing units (GPUs), the one or more GPUs including a hardware preprocessor; and
a memory for storage of data for the one or more processors;
wherein the hardware preprocessor is to:
access a table of IP (Internet Protocol) addresses for utilization by a kernel, the kernel to be processed by the one or more GPUs, and
speculatively prefetch one or more IP addresses from the table of IP addresses to one or more caches, the hardware preprocessor to commence the speculative prefetching prior to thread execution performed by the one or more GPUs for the kernel.
2 . The apparatus of claim 1 , wherein the hardware preprocessor is sharable among multiple processing resources of the one or more GPUs.
3 . The apparatus of claim 2 , wherein the multiple processing resources include multiple execution units.
4 . The apparatus of claim 1 , wherein data for the table of IP addresses is loaded based on software generated sequences for utilization by the kernel.
5 . The apparatus of claim 1 , wherein data for the table of IP addresses is loaded based on a stride generated to identify IP addresses associated with the kernel.
6 . One or more non-transitory computer-readable storage mediums having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
accessing, utilizing a hardware preprocessor of one or more processors in a computing system, a table of IP (Internet Protocol) addresses for utilization by a kernel, the one or more processors including one or more graphics processing units (GPUs), the kernel to be processed by the one or more GPUs; and
speculatively prefetching, by the hardware preprocessor, one or more IP addresses from the table of IP addresses to one or more caches, the hardware preprocessor to commence the speculative prefetching prior to thread execution for the kernel performed by the one or more GPUs.
7 . The one or more computer-readable storage mediums of claim 6 , wherein the hardware preprocessor is sharable among multiple processing resources of the one or more GPUs.
8 . The one or more computer-readable storage mediums of claim 7 , wherein the multiple processing resources include multiple execution units.
9 . The one or more computer-readable storage mediums of claim 6 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
loading data for the table of IP addresses based on software generated sequences for utilization by the kernel.
10 . The one or more computer-readable storage mediums of claim 6 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
loading data for the table of IP addresses based on a stride generated to identify IP addresses associated with the kernel.
11 . A method comprising:
accessing, utilizing a hardware preprocessor of one or more processors in a computing system, a table of IP (Internet Protocol) addresses for utilization by a kernel, the one or more processors including one or more graphics processing units (GPUs), the kernel to be processed by the one or more GPUs; and
speculatively prefetching, by the hardware preprocessor, one or more IP addresses from the table of IP addresses to one or more caches, the hardware preprocessor to commence the speculative prefetching prior to thread execution for the kernel performed by the one or more GPUs.
12 . The method of claim 11 , wherein the hardware preprocessor is sharable among multiple processing resources of the one or more GPUs.
13 . The method of claim 12 , wherein the multiple processing resources include multiple execution units.
14 . The method of claim 11 , further comprising:
loading data for the table of IP addresses based on software generated sequences for utilization by the kernel.
15 . The method of claim 11 , further comprising:
loading data for the table of IP addresses based on a stride generated to identify IP addresses associated with the kernel.