Perfilizar um benchmark compilado para o SPARC V8 em um X86
-
13-11-2019 - |
Pergunta
Estou tentando fazer uma (pequena) melhoria para o processador Leon3 (o conjunto de instruções é SPARC v8) para um exercício acadêmico. Antes de decidir o que melhorar, quero fazer perfil um par de programas de referência que quero adaptar as melhorias.
Eu não tenho acesso a uma máquina SPARC V8.
Atualmente, estou usando uma versão de avaliação do 'TSIM' (um simulador Leon3) que faz perfil no nível funcional. Que não é realmente tão útil.
Eu tentei coisas estranhas como compilar com desenrolamento de loop habilitados e, em seguida, contando as instruções interessantes no código de montagem, mas o GCC se recusa a desenrolar os laços, provavelmente porque alguns deles ficam muito profundos (por exemplo, 4 aninhados 'para' loops 'para' .
Idealmente, o que eu estou procurando é um simulador SPARC V8 que executa o benchmark e perfis no nível da instrução (coisas como: 'Smul' foi executado x tempos) para que eu possa decidir onde começar a tentar melhoria. Claro, se houver outras maneiras, posso fazer isso, se não um profiler, não vou me importar.
Alguma idéia?
Solução
Simulando o processador em Modelsim pode ser uma opção.Com os modelsim, você pode fazer uma simulação funcional do processador completo de Leon3.Embora a simulação seja bastante lenta e provavelmente completa overkill para seus propósitos, mas a Aeroflex Gaisler oferece excelentes scripts para trabalhar com os modelsim.
Uma edição de estudante de Modelsim pode ser encontrada aqui:
http://www.mentor.com/company/higher_ed/modelsim-Student-Edition
Outras dicas
Se você realmente quiser cavar isso no fundo do hardware, você encontrará um simulador útil que o ajude com isso.
simics Entrou em mente.Eles costumavam ter licenças acadêmicas gratuitas, mas desde que foram compradas pela Intel, agora você precisa se candidatar a um, que da minha experiência leva algumas semanas.Se você estiver disposto a investir desta vez, você certamente obterá uma ferramenta que atenda às suas necessidades, embora apoiem Leon2, não leon3, como modelo, mas para o perfil, isso deve ser bom.
qemu também tem Leoton Suporte Mas, como eles se recompilarem fortemente, provavelmente será difícil de criar um perfil de instrução com ele.
.