реклама на сайте
подробности

 
 
> Fortran & ARM, а фортранчик быстрее С ....
klen
сообщение May 24 2008, 21:03
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



очередной эксперемент по глумлению (над чем сами для себя решайте)

имеем : GNU GCC, контроллер lpc2148 и функцию f(a,x)=sqrt( fabs(cos( exp(a) + sin(log(x)))))

код на С

float func_c (float a , float x)
{
return sqrt( fabs(cos( exp(a) + sin(log(x)))));
}

код на фортране

REAL FUNCTION FF(A,X)
REAL A,X
FF=SQRT(ABS(COS( EXP(A) + SIN(LOG(X)))));
END FUNCTION FF


все это компиляется ( -Os )в один проект, заливается и запускается

выполняется кусок
FIO1DIR |= _BV(24) ;
while(1)
{
FIO1CLR |= _BV(24) ;
res=ff_(&x,&y);
FIO1SET |= _BV(24) ;
res = func_c (x,y);
}

на 24 пине мерятся импулсы осцилом
итого на фртране 136 микросекунд
на С 252 микросекунд
результаты расчета верны для обоих вызовов. разница по скорости в 2 раза

ОДНАКО ЗАБАВНО!

вот думаю вычисления в циклах на фортране написать. почему нет?
инструмент есть - нада пользоватся!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение May 25 2008, 06:21
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Чисто вычислительные алгоритмы на Фортране могут быть немного быстрее чем на С, но не в два же раза!
Тут скорее другое - Фортран всё считает с одинарной точностью, а С по стандарту обязан использовать double в промежуточных выражениях.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
klen
сообщение May 25 2008, 08:22
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



согласен что странно .
из кода скомпиленного на фортране вызываются теже cos sin abs из libm
вобщем ниче непонятно, нада разбираться и понять когда есть смысл этот огород городить
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение May 25 2008, 20:53
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(klen @ May 25 2008, 12:22) *
...из кода скомпиленного на фортране вызываются теже cos sin abs из libm ...

а не передача-ли параметров тут играет (по ссылке/по значению) - дизасм нада смотреть - там все одинаково?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016