Branch prediction is increasing in importance as processors have more in-flight instructions. Our hypothesis is that we can produce fundamentally better predictions by merging different prediction contexts rather than competing between different predictor outcomes. The reason to believe in this hypothesis is that the different contexts used by different predictors today are not independent: for example, loops and statistically predicted branches are intermixed and affect each other. Combining contextual information before finding patterns is fundamentally different from combining the final predictions after each predictor finds its own context-specific pattern. If we can combine different types of contextual information (e.g., loops and statistical counts and histories), we believe we can create a more sophisticated “meta-context” that allows us to recognize patterns from the combined context information, leading to better predictions. The flip side is that it may be correspondingly harder to recognize the right patterns, particularly at runtime. This project contains two parts: looking at the underlying potential by studying application behavior and looking at the tradeoffs to make a practical design.
Research, publication, advising, and possibly teaching in computer architecture.
PhD degree in Computer Science or Compute Engineering or a foreign degree equivalent to a PhD degree in Computer Science or Compute Engineering. The degree needs to be obtained by the time of the decision of employment. Those who have obtained a PhD degree three years prior to the application deadline are primarily considered for the employment. The starting point of the three-year frame period is the application deadline. Due to special circumstances, the degree may have been obtained earlier. The three-year period can be extended due to circumstances such as sick leave, parental leave, duties in labour unions, etc.
Excellent skills in spoken and written English are required. The candidate must clearly document a high degree of self-motivation in the application. In addition, the applicant must be able to work well in a diverse group, comfortable giving and receiving constructive criticism, and have strong abilities for critical thinking and structured work. These competencies are as important as the technical qualifications as they are essential for ensuring a constructive and collaborative work environment.
Candidates should have expertise in computer architecture, ideally in branch prediction or out-of-order execution, and some experience with machine learning. Experience with training/optimizing/interpreting attention mechanisms in neural networks is a plus, but this can be learned as part of the project as well.
Sweden Academic Computing/Programming Data Science Maths and Computing On-site Postdoc Uppsala University