Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

Компиляция функций с использованием SSE и 3DNow!   Найти похожие ветки 

 
PiterPen   (2007-11-26 03:40) [0]

Дельфи 7 компилирует паскалевский код без использования SSE и 3DNow!. А нет ли какого-нибудь компилятора, который мог бы с их использованием?

При работе с группами цифр это могло бы увеличить скорость в несколько раз.

Ну то есть, нужен какой-нибудь компилятор, или оптимизатор, ну в общем программа, которая могла бы переводить такие куски кода в ассемблер с использованием SSE и 3DNow!. А ассемблерный код можно было бы вставить в свою программу на Дельфи и получить прирост скорости.


 
@!!ex ©   (2007-11-26 08:17) [1]

легко.
вот пример из моего рабочего кода. Delphi 7
function DistancePoints(const Point1, Point2: TVector): Single;
asm
 movUps xmm0, [Point1]
 movUps xmm1, [Point2]
 subps  xmm1, xmm0
 mulps  xmm1, xmm1
 movUps [tmp],xmm1

 fld    tmp.x
 fadd   tmp.y
 fadd   tmp.z
 fsqrt
 wait
end;


 
@!!ex ©   (2007-11-26 08:19) [2]

P.S.
код не пригодный в мультипотоковых приложениях, ибо использует временнубю переменную. Соответственно если их двух потоков вызвать функцию - все поломается.

P.P.S.
3DNow не имеет смысла использовать, технология с душком... а AMD SSE держит уже давно.
SSE - forever


 
PiterPen   (2007-11-27 02:14) [3]


> @!!ex ©   (26.11.07 08:19) [2]
>
> P.S.
> код не пригодный в мультипотоковых приложениях, ибо использует
> временнубю переменную. Соответственно если их двух потоков
> вызвать функцию - все поломается.


Можно поподробнее с этого места?
Почему нельзя вызывать из двух потоков и что именно поломается?


 
Германн ©   (2007-11-27 03:17) [4]


> PiterPen   (27.11.07 02:14) [3]
>
>

Ты бы лучше сначала освоил бы ассемблер сабжа, прежде чем спрашивать про потоки.


 
PiterPen   (2007-11-27 06:40) [5]


> Германн ©   (27.11.07 03:17) [4]
>
> > PiterPen   (27.11.07 02:14) [3]
> >
>
> Ты бы лучше сначала освоил бы ассемблер сабжа, прежде чем
> спрашивать про потоки.


Лучше бы ты сначала заткнулся и ушёл отсюда.


 
homm ©   (2007-11-27 06:55) [6]

> [3] PiterPen   (27.11.07 02:14)
> Почему нельзя вызывать из двух потоков

> [2] @!!ex ©   (26.11.07 08:19)
> ибо использует временнубю переменную


> [5] PiterPen   (27.11.07 06:40)
Смени ка тон, козявка.


 
@!!ex ©   (2007-11-27 09:18) [7]

> Почему нельзя вызывать из двух потоков и что именно поломается?

Я вроде по русски написал.
Ты в функции декларацию переменной tmp видишь? Нет... ее там нет. Т.К. это внешняя переменная выделенная для оптимизации. Но при использовании нескольких потоков это приведет к багам.


> Лучше бы ты сначала заткнулся и ушёл отсюда.

Так ты добьешся только одного. Тебя пошлют на* все, включая меня.


 
KSergey ©   (2007-11-27 09:33) [8]

А эта....
Ну понятно, что можно ассемблерные вставки нафигачить, только к компиялтору как таковому это имеет никакого по сути отношения.

А как бы все же компилятор тут задействовать? (шепотом, оглядываясь: ну пусть не дельфийский...)


 
@!!ex ©   (2007-11-27 09:35) [9]

> [8] KSergey ©   (27.11.07 09:33)

Интеловский компилятор умеет в SSE компилить, только он точно никакого отношения к дельфе не имеет.
Один фиг надежнее самому написать на asm"e.


 
@!!ex ©   (2007-11-27 09:36) [10]

> только к компиялтору как таковому это имеет никакого по
> сути отношения.

имеет, :)
Вот если бы мы писали на маш кодах... тогда да...


 
PiterPen   (2007-11-28 02:08) [11]


> homm ©   (27.11.07 06:55) [6]
> Смени ка тон, козявка.


Ты, гавнюк, зачем сюда пришёл? Иди сри куда-нибдуь подальше.


 
@!!ex ©   (2007-11-28 02:17) [12]

> [11] PiterPen   (28.11.07 02:08)

Сам иди срать туда, придурок.


 
Piter ©   (2007-11-28 02:23) [13]

вообще-то лучший ответ хаму - игнор. Уподобаясь ему вы только подливаете ему сил в ответном хамстве. В жизни лучший способ - дать в грызло, все проблемы тут же решаются. В интернете - лучше игнор, это человека обламает больше.


 
@!!ex ©   (2007-11-28 02:24) [14]

> [13] Piter ©   (28.11.07 02:23)

Та ну... Так не интересно. :))


 
homm ©   (2007-11-28 07:16) [15]

> [11] PiterPen   (28.11.07 02:08)
> Ты, зачем сюда пришёл?

Тебе же помошь нужна была, забыл что-ли?

Твой боевой настрой просто удивляет. Тебе человек посоветовал как лучше разобраться в вопросе, без наездов, без понтов. Но твой неокрепший мозг перевернул все с ног на голову, и ты решил что взрослые плохие дядьки снова решили тебе указывать как жить.


 
homm ©   (2007-11-28 07:18) [16]

> [12] @!!ex ©   (28.11.07 02:17)
> Сам иди срать туда, придурок.

Зря беспокоишься, я отлично сходил, покакал именно туда, где нужно :)))


 
@!!ex ©   (2007-11-28 07:55) [17]

> [16] homm ©   (28.11.07 07:18)

Ты адресат не перепутал??


 
@!!ex ©   (2007-11-28 07:56) [18]

Наверно я всетаки слишком устал и туплю...


 
Slym ©   (2007-11-28 08:35) [19]

@!!ex ©   (28.11.07 7:56) [18]
Наверно тоже настала пора сходить
Посидеть и расслабиться с хорошей книжкой :)


 
KSergey ©   (2007-11-28 08:57) [20]

> Piter ©   (28.11.07 02:23) [13]
> В жизни лучший способ - дать в грызло

Научите, а, други?
А то боюсь жисть бестолково пройдет... :(
честно-честно :(


 
KSergey ©   (2007-11-28 08:59) [21]

> Slym ©   (28.11.07 08:35) [19]
> Посидеть и расслабиться с хорошей книжкой :)

К стати да. Чего у нас тама зе бест нынче? :)



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
1-1192005243
wild_arg
2007-10-10 12:34
2007.12.30
Хелп в проектах D7 и D10(BDS)


15-1195982608
Иван Д.
2007-11-25 12:23
2007.12.30
Гиперкуб


2-1197011951
Александр Семак
2007-12-07 10:19
2007.12.30
Удаление установленных компонентов


2-1196914687
Skyle
2007-12-06 07:18
2007.12.30
Перенос главной формы приложения на другой монитор


2-1196926527
Dennis I. Komarov
2007-12-06 10:35
2007.12.30
Apply Button