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

 
 
> 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
Ответов (1 - 10)
aaarrr
сообщение May 24 2008, 21:08
Сообщение #2


Гуру
******

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



Просто библиотеки быстрее, но забавно, да.
Go to the top of the page
 
+Quote Post
klen
сообщение May 24 2008, 21:31
Сообщение #3


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

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



Цитата(aaarrr @ May 25 2008, 01:08) *
Просто библиотеки быстрее, но забавно, да.

тем не мене факт на рыло, и его ничто не мешает юзать
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 25 2008, 01:27
Сообщение #4


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(klen @ May 25 2008, 00:31) *
тем не мене факт на рыло, и его ничто не мешает юзать

было бы неплохо прочесть об остальных матфункциях - не у всех руки дойдут проверять. А еще проверить FFT с табличной тригонометрией (ну не вычисляя вский раз). Если и оно будет работать быстрее...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 25 2008, 06:21
Сообщение #5


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

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 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
klen
сообщение May 26 2008, 08:19
Сообщение #8


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

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



Цитата(Andrew2000 @ May 26 2008, 00:53) *
а не передача-ли параметров тут играет (по ссылке/по значению) - дизасм нада смотреть - там все одинаково?

неодинаково.
это не может быть существенно, потому что время трассы мат - функций на порядки больше чем время кода функции их вызывающих
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 1 2008, 13:41
Сообщение #9


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



А функции фортрана могут быть рекурсивными? 05.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Nitrotoluol
сообщение Jun 2 2008, 18:11
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 20-05-08
Из: Украина
Пользователь №: 37 661



а ассемблер еще быстрее....
чтож поделать если не могут нормальный компилятор для С сделать... остается только ждать...
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 2 2008, 20:18
Сообщение #11


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Nitrotoluol @ Jun 2 2008, 21:11) *
а ассемблер еще быстрее....
чтож поделать если не могут нормальный компилятор для С сделать... остается только ждать...

Да причем там нормальный-не нормальный. Я вопрос к тому задал, что вот если понаделывать inline функций то прога на C тоже быстрее работать начнет. А когда-то читал, что в фортране нет рекурсии (так же как и в инлайне - где идет подстановка, а не загрузка-выгрузка в стек всей трахомудии связанной с вызовом настоящих C-шных функций). Да и о легендарных матбиблиотеках которые так и не захотели переписывать на C думаю слышали многие. Их даже сейчас в играх используют в одной киевской конторе. smile.gif Видимо там все дело в организации размещения данных и работе с ними. Нужно найти более глубоких спецов по фортрану или теории компиляторов и уточнить.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post

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

 


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


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