Skip to content
Commit c374ffbb authored by Matt Wala's avatar Matt Wala
Browse files

New API for collecting performance model data.

This adds a method *get_modeled_performance* to the `BoundExpression`
class, which does a performance model evaluation over the expression.

This lets us write code such as:

    op = bind(lpot_source, sym.S(knl, sigma_sym))
    perf_model = op.get_modeled_performance(queue, sigma=sigma)

A dictionary that is returned maps layer potential instructions to
their corresponding modeled costs. The QBXLayerPotentialSource is
extended to include a *performance_model* attribute, which is an
instance of PerformanceModel. This lets us customize the performance
model.

Currently, all the non layer potential instructions in the bound
expression are still evaluated to make sure that the shapes/data types
all are as expected. In principle, we could do symbolic execution of
those instructions instead, though that would require a bit of
analysis of the expression.
parent cd2b5e2c
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment