Página 1 de 1
Cálculos intensivos em float

Enviado:
27 Jun 2016 21:01
por eletroinf
Fiz um código aqui, mais precisamente uma implementação do RLS para identificação dos parâmetros de um sistema, de terceira ordem.
Testei num stm32f103, através do arduino (compilador GCC) e ele demora em torno de 415 us para uma iteração com clock de 84 MHz.
Testei no keil, para um stm32f407 e o resultado foi de 185 us para uma iteração do mesmo código, com o hw de FPU ativo e clock de 168 MHz.
Alguém que tenha experiência com o 407, não era pra rodar mais rápido?
Re: Cálculos intensivos em float

Enviado:
28 Jun 2016 10:09
por andre_luis
Não sei se entendi corretamente, mas se você está utilizando 2 compiladores diferentes ( Arduino x Keil ), alguma diferença seria esperada devido á diferentes otimizações, ainda que fosse utilizado o mesmo uC pra ambos. No passado, trabalhei com um compilador ( Avocet, se não me engano ) onde era possível configurar diversos parâmetros internos, inclusive do Float, tal como a Resolução da mantissa do numero, de modo que era possível acelerar os um pouco os cálculos, ainda que perdendo alguma precisão. Enfim, pra responder á essa pergunta, talvez tivesse de esmiuçar a fundo ambos os compiladores.
Re: Cálculos intensivos em float

Enviado:
28 Jun 2016 10:36
por eletroinf
Sim, estou atento a isso, mas mesmo assim não está razoável. Já vi os tamanhos das variáveis, otimização eu mexi também.
Tem a an4044 da ST que faz um comparativo usando FPU, baseado nisso não me parece razoável que um processador com FPU tome o mesmo tempo pra calcular a mesma coisa que um sem a unidade. Mesmo variando o compilador, daria uma diferença maior de 500% ?
Re: Cálculos intensivos em float

Enviado:
10 Jul 2016 18:20
por eletroinf
Descoberto!
Tio Keil me sacaneando, debugger informando o tempo errado. Analisador lógico nos pinos e voy-lá tempo exato (e bem menor) verificado.