Прогнозирование ветвлений на основе персептрона с помощью TensorFlow

#tensorflow #neural-network #cpu-architecture #perceptron #branch-prediction

#tensorflow #нейронная сеть #архитектура процессора #персептрон #предсказание ветвлений

Вопрос:

Я работаю над проектом, чтобы более подробно изучить динамическое предсказание ветвлений. У меня есть простая реализация архитектуры MARIE, написанная на Python, и мне было интересно, могу ли я использовать sci-kit и tensorflow для обучения персептронов для прогнозирования ветвлений? Я не уверен, можно ли это сделать или мне следует использовать другой подход?

Спасибо за любой вклад.

Комментарии:

1. AMD заявила, что их микроархитектура Zen буквально использует предсказатель «хэшированного персептрона» как часть своего предсказания ветвлений. (Zen 2 добавляет TAGE, как и Intel, но, по-видимому, все еще сохраняет Персептрон). предохранитель. wikichip.org/news/2458/a-look-at-the-amd-zen-2-core имеет некоторые детали. Так или иначе, да, использование персептрона для прогнозирования ветвлений должно быть возможным. У меня нет никаких предложений о том, как использовать какие-либо конкретные инструменты или библиотеки, но я бы предположил, что это выполнимо с ними.

2. Обратите внимание, что МАРИ использует очень ограниченную условную ветвь ( skipcond ), которую IIRC может пропустить только вперед по одной инструкции. Таким образом, каждая условная ветвь является ветвью «гамака» в терминологии компьютерной архитектуры. Я полагаю, что это упрощает предсказание ветвлений, но это означает, что некоторые программы имеют больше ветвлений, чем обычная программа (например, для менее искалеченных игрушечных ISA, таких как LC-3), особенно если вы включаете безусловные ветви. Вероятно, до тех пор, пока вы опускаете косвенные ветви, наличие относительного целевого адреса нелегко предсказать.