Cálculos intensivos em float

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Cálculos intensivos em float

Mensagempor eletroinf » 27 Jun 2016 21:01

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?
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Cálculos intensivos em float

Mensagempor andre_luis » 28 Jun 2016 10:09

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.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Cálculos intensivos em float

Mensagempor eletroinf » 28 Jun 2016 10:36

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% ?
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Cálculos intensivos em float

Mensagempor eletroinf » 10 Jul 2016 18:20

Descoberto!
Tio Keil me sacaneando, debugger informando o tempo errado. Analisador lógico nos pinos e voy-lá tempo exato (e bem menor) verificado.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x