Knowledge
About Config Dynamics
Until the mid-2000s, software developers relied on computer architects to turn increasing transistor counts into increasing performance with no software changes. Due do the end of Dennard scaling and the physical limitations of power and energy dissipation, computer architects can no longer provide this “free ride.”
While additional hardware resources are available, they come at the cost of increased software complexity for determining how best to use those resources. Software systems are also increasingly configurable and require users to directly manage performance related parameters. The interaction of these software and hardware parameters becomes incredibly complex and difficult to model.
Every system deployed in the “real-world” has required the means to meet multiple, conflicting design requirements and ensure they are met despite unpredictable operating environments and workload,needing to overcome two distinct challenges:
The first is inherent complexity: hardware and software exposes diverse, configurable parameters whose complicated interactions have non-linear effects on mission-critical metrics. The environment, maintenance, upgrades, developer skills and the like all add to this complexity.
The second is dynamics: computing systems must reliably adapt to unpredictable changes in operating environment, input workload, and even user needs.
In thinking about new approaches, AI techniques are well-suited to build models of complex, configurable computing systems and control techniques are ideal for configuring those systems to meet goals despite dynamic fluctuations. It makes intuitive sense to combine both, and that capability is core for Config Dynamics’ Self-Aware computing technology.
It was not obvious how to bridge the gap between learned, non-linear models of discrete computing systems and the continuous, linear models used by common control systems.
Our original research in this space initially explored several specific problems: (1) building AI models of system resource efficiency and combining those with control of application alternatives to maximize application quality for a given energy budget, (2) using AI to model application resource requirements and then combining that with control to meet quality-of-service guarantees for minimal cost in infrastructure-as-a-service platforms and (3) using AI to understand application resource needs to control latency with minimal energy for GPUs.
The key lesson learned from this work was the interface needed to combine the AI model with the control system. In short, we needed the learners to produce piece-wise linear models representing tradeoffs (for example the tradeoff between energy and latency for a given application and system) and pass these to the controller, which uses this linear model to make efficient resource allocation decisions in response to dynamics. One additional requirement was to ensure that results would be improved when the AI system would be available to also communicate its uncertainty to the control system.
The result is a general methodology, Self-Aware™ computing, where an abstract control system is customized at runtime by a learner. We find that it enables: 1) fast reaction to dynamic changes, 2) error tolerance based on runtime feedback and 3) robust design that guarantees that operating requirements will be respected when possible or the ability to report when those requirements cannot be met.
Self-Aware™ computing has also been applied to AI tools themselves, we call AdaptiveAI™.
The CS community and the world at large has been transformed by advances in AI. And of course, like all computing systems, deployed AI inference systems also must meet quantifiable goals including latency and energy, but also inference accuracy.
Regrettably, AI inference has not been “configurable” in a classic sense, being a product of AI training which itself is a product of specific neural network architecture choices. The same limitations apply as well to agents, themselves products of very targeted inference.
But now, the good news is that our prior research on self-aware-computing, approximate computing and loop perforation has found us in a leadership position for dynamically managing AI to meet latency, energy, and accuracy goals in dynamic environments.
We can now make AI configurable and can then make AI Self-Aware, using goals to be responsive to workloads to extract performance. For us, AI, whether for training inference or agent use, is another complex system problem, with huge consequences, made more performant when it is dynamically tuned through goals.
The research foundations for Self-Aware™ computing are available in many peer-reviewed papers listed below. A few of them are particularly interesting and have been highlighted.
We have grouped interesting results by for those interested in research protocols and the timelines of development and application experiences. This body of work has significantly influenced Config’s evolving moat of patents and application-centric intellectual property.
Overall, the entire development process has been based upon sound mathematical models which permit some reasoning and assurance about when systems will meet user goals, and perhaps more importantly, providing understanding of when those goals are unreachable.
This is why we say throughout our website and whenever we begin a new engagement, that any Self-Aware system is better than any unaware system: the self-aware system is future-proofed and capable of meeting goals even when deployment conditions do not match the conditions anticipated at development time.
