By: dmcq (dmcq.delete@this.fano.co.uk), April 5, 2021 9:27 am
Room: Moderated Discussions
Moritz (better.delete@this.not.tell) on April 5, 2021 3:21 am wrote:
> Any caching is in a way speculative. Only preloading data that has not been used recently is called so.
> But precalculating what data might be needed is the only way to increase single thread performance.
> Some of that analysis can be done by the compiler or at least the compiler can form conditional statements
> about what might end up in the execution path. These conditional statements could then be processed
> at run-time by the outer-/preprocessor to prefetch based on the current information available.
>
> Sometimes it is better to write a program that generates a program based on the data it is supposed to
> process which then does the calculations instead of processing conditionals and identity elements. If
> it is a lot of data and much of it is available before the execution starts then this form of control
> code generation should be beneficial. I know it is done to compute huge sparse matrices on CPUs.
>
> Am I just externalizing the problem? Maybe, but I know that a software controlled
> and informed preprocessor can be more complex and specific with less area.
> Am I just reconceptualizing, rephrasing what is already implemented? I do not know to what extend compiler
> generated cache control instructions and 'data based' / 'dynamic' code morphing are already used.
Browsers are already preloading pages referenced by links in case you click on the link. Neural nets can predict the most likely next few keys you press and your PC can calculate the results and store them so you can get an instant reply. Remote sites will be able to run your querys speculatively so when a confirmation of a query comes it just needs to check the result is still valid and do a commit. Predicting the data is a useful first step towards totally instant transaction synchronized update processing.. ;-)
Sorry to be a bit cynical, but the degradation from disabling the AMD Zen 3 predictive load forwarding was less he 2% according to a recent messag on this forum.
> Any caching is in a way speculative. Only preloading data that has not been used recently is called so.
> But precalculating what data might be needed is the only way to increase single thread performance.
> Some of that analysis can be done by the compiler or at least the compiler can form conditional statements
> about what might end up in the execution path. These conditional statements could then be processed
> at run-time by the outer-/preprocessor to prefetch based on the current information available.
>
> Sometimes it is better to write a program that generates a program based on the data it is supposed to
> process which then does the calculations instead of processing conditionals and identity elements. If
> it is a lot of data and much of it is available before the execution starts then this form of control
> code generation should be beneficial. I know it is done to compute huge sparse matrices on CPUs.
>
> Am I just externalizing the problem? Maybe, but I know that a software controlled
> and informed preprocessor can be more complex and specific with less area.
> Am I just reconceptualizing, rephrasing what is already implemented? I do not know to what extend compiler
> generated cache control instructions and 'data based' / 'dynamic' code morphing are already used.
Browsers are already preloading pages referenced by links in case you click on the link. Neural nets can predict the most likely next few keys you press and your PC can calculate the results and store them so you can get an instant reply. Remote sites will be able to run your querys speculatively so when a confirmation of a query comes it just needs to check the result is still valid and do a commit. Predicting the data is a useful first step towards totally instant transaction synchronized update processing.. ;-)
Sorry to be a bit cynical, but the degradation from disabling the AMD Zen 3 predictive load forwarding was less he 2% according to a recent messag on this forum.