Forces of change assail the world of electronic systems design. The complexity of new applications leaps ahead by factors and orders, not percentages. The number of gates available on a chip is now large enough to where just counting them, much less designing them, is a problem. Irate iPhone purchasers are painfully aware that time-to-market pressure continues to intensify, and the cost of developing new ASICs is one of the few things rising faster than the cost of Stanford tuition.
What will arise from the confluence of these forces? Complexity will be handled by a move to higher-level languages that express applications at a level more suitable to human understanding. Less effort will be focused on product differentiation though highly-customized ASICs; more effort will be focused on differentiation through intellectual property running on programmable systems. Because the high-level representation of an algorithm will be not be implementation-specific, it can be more easily retargeted to new or different systems. A leading indicator of this change is the world of signal processing, where virtually all development is initially done in MATLAB then manually translated into C for implementation.
Catalytic, Inc. was founded with the goal of filling a void in this new order of system design by automating the implementation of languages such as MATLAB, where "implementation" as a general rule means "compiling into efficient C code". Such compiled code can be used to accelerate simulation performance, or to tie algorithms into larger simulation platforms, or as a basis for a product implementation, or potentially for parallelized performance. This talk discusses some of the compiler optimization challenges presented by a naturally-interpreted, dynamically-typed, vector-centric language such as MATLAB, and how compiler theory can be both extended or stretched to accommodate these overly-hyphenated challenges.
About the speaker:
Randy Allen has over 20 years of software and compiler development experience in startup companies, advanced technology divisions, and research organizations. Prior to founding Catalytic, he served as Vice President of Engineering at CynApps, Vice President of Performance Engineering at Chronologic Simulation, Executive Director of Software Development at Kubota/Ardent Computer, and Director in the Advanced Technology Group at Synopsys.
Randy Allen is coauthor of the book Optimizing Compilers for Modern Architectures. He has authored or coauthored 15 conference and journal papers on compiler optimization, restructuring compilers, and hardware simulation. Randy received his A.B. Summa Cum Laude in Chemistry from Harvard University and his M.A. and Ph.D. in Mathematical Sciences from Rice University.