Estou procurando no ML a geração de código mais eficiente (ou seja, heurísticas de tempo de compilação e tempo de execução). Eu tenho um phd (compiladores, hpc), mas muito pouca experiência em ML.
Eu apreciaria todas as referências ao trabalho existente.
Mais importante, quais técnicas de aprendizado de máquina devo explorar?
- cada amostra de dados é um código + execução de teste + dados de desempenho
- grande número de amostras de dados, com rotulagem correta
- grande número de parâmetros para modificar
- qualquer amostra pode ser executada novamente com todos os parâmetros (e obter rotulagem correta)
- grande quantidade de CPU para executar e executar novamente amostras
E também algumas das minhas suposições muito suspeitas ...
- grande parte do código já é ideal localmente (otimização básica do compilador)
- alguns dos parâmetros são "conceitos de alto nível", por exemplo, substituem array por lista vinculada. (portanto, uma pequena alteração de parâmetro terá efeitos variados)
- a melhoria desejada é limitada (uma melhoria de xK é "boa o suficiente", K é bem conhecido)
- os parâmetros são escassos, ou seja, praticamente zero (suspeito que a maioria dos códigos seja basicamente boa e que haja relativamente poucas alterações benéficas)
Qualquer indicação para me colocar no meu caminho seria apreciada
Parece que você está solicitando referências a quaisquer documentos no design do compilador. Há muitos.
—
Tsuyoshi Ito
Absolutamente não! Estou olhando para heurísticas que estão completamente fora do design do compilador. Essas heurísticas constituem um espaço de problemas muito grande e não podem ser facilmente analisadas, mesmo em tempo de execução, daí o ML.
—
OA1
você provavelmente deveria ir para metaoptimize.com. Esta questão está fora de escopo aqui.
—
Suresh Venkat
Eu percebi que "ML" na pergunta não significa o que eu pensei que isso significava .
—
Tsuyoshi Ito
@TsuyoshiIto eu diria que estas técnicas podem ser desembarcados em máquina virtual, não o compilador em si
—
om-nom-nom