Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно читать запись в record ассемблерной функции? [D2005]


Страницы:   1 2 3

yantux ©   (2010-01-13 15:34:00) 

type
mytype = record
 a : integer; (* внутри ассемблерной функции это поле читается и пишется без проблем *)
 b : array of array of extended; (* как читать и как писать в это поле внутри ассемлерной функции? *)
end;

procedure test1(var f : mytype) ; assembler;
asm
f.b[0,0];(* как правильно прочитать и правильно записать в это поле для кода с коммандами fpu? *)
end;

var
  t : mytype;
begin
  setlength(t,20,20);
  test1(t);
end;


yantux   (2010-01-14 11:38:00) [1]

> Ну и что ?
> Перед MMX и задачи несколько иные стоят, нежели тебя интересующие..
> Но это же вовсе не говорит о том, что MMX - это 5-е колесо у телеги)

Я ни чего плохого про mmx не сказал. Возможно эта технология очень востребована.


Сергей М.   (2010-01-14 11:21:00) [2]

Ну и что ?
Перед MMX и задачи несколько иные стоят, нежели тебя интересующие..
Но это же вовсе не говорит о том, что MMX - это 5-е колесо у телеги)


yantux   (2010-01-14 11:15:00) [3]

> Ты считаешь, что эти расширения были придуманы и реализованы Интелом от нечего делать ?)

Не знаю, со вечкой не стоял, но для больших матриц это не катит (mmx ограничение размера матрицы 8х8) и тип extended (родной для fpu) я так понимаю не поддерживается (у mmx целочисленный тип данных).


Anatoly Podgoretsky   (2010-01-14 10:10:00) [4]

> Сергей М.  (14.01.2010 10:07:47)  [47]

А почему бы и нет? Чего ради маркетинга не сделаешь. Главное повышение производительности будет подтверждено ТЕСТАМИ


Сергей М.   (2010-01-14 10:07:00) [5]


> mmx, sse дают не очень ощутимый прирост производительности


Ты считаешь, что эти расширения были придуманы и реализованы Интелом от нечего делать ?)


yantux   (2010-01-14 09:54:00) [6]

> Тебе уже советовали написать обращение на Паскале и посмотреть
> ассемблерный код, ты что ни будь сделал из того, что тебе советовали.

[23]


yantux   (2010-01-14 09:48:00) [7]

> Ты прочитал документацию Интела по оптимизации? Есть и такой том.

Я смотрел в инете в основном обзорные статьи людей, которые занимаются оптимизацией кода и на примерах разбирают возможности по mmx, sse, sse2. В одной статье было сказано, что достаточно просто нормально написать алогритм, а mmx, sse дают не очень ощутимый прирост производительности.


yantux   (2010-01-14 09:46:00) [8]

> Ты прочитал документацию Интела по оптимизации? Есть и такой том.

Я смотрел в инете в основном обзорные статьи людей, которые занимаются оптимизацией кода и на примерах разбирают возможности по mmx, sse, sse2. В одной статье было сказано, что достаточно просто нормально написать алогритм, а mmx, sse дают не очень ощутимый прирост производительности.


yantux   (2010-01-14 09:44:00) [9]

> Читай документацию по процессору, с сайта Интел.
> Статью на моем сайте ты все равно игнорируешь.

С удовольствием прочитал бы вашы статьи, но этой ветке форума нет ни одной ссылки на сайты в инете.


Anatoly Podgoretsky   (2010-01-13 18:42:00) [10]

> yantux  (13.01.2010 18:11:34)  [34]

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


Anatoly Podgoretsky   (2010-01-13 18:41:00) [11]

> yantux  (13.01.2010 18:07:30)  [30]

Какие именно команды/последовательности команд.


Anatoly Podgoretsky   (2010-01-13 18:40:00) [12]

> yantux  (13.01.2010 18:03:27)  [27]

Наличие/отсутствие  тормозов со стороны wait можно проверить на любом коде.
Достаточно написать две версии с wait и без и профилировать этот код любым доступным методом.


Anatoly Podgoretsky   (2010-01-13 18:38:00) [13]

> yantux  (13.01.2010 18:00:26)  [26]

Ты прочитал документацию Интела по оптимизации? Есть и такой том.


Anatoly Podgoretsky   (2010-01-13 18:38:00) [14]

> yantux  (13.01.2010 17:58:24)  [24]

Читай документацию по процессору, с сайта Интел.
Статью на моем сайте ты все равно игнорируешь.


Sha   (2010-01-13 18:24:00) [15]

>> Как узнал?
> несколько десятков матриц, матрица большая,
> размер строки и столбца на несколько сотен элементов

Я тоже иногда кое-что рассчитываю. Иногда много. Иногда тысячи элементов. Скорость устраивает.

>> Что есть перебор? Это переход к следующему элементу?
> да

Если формирование адреса очередного элемента вносит существенный вклад в рост времени вычислений,
то имеет смысл сначала попробовать оптимизировать размещение элементов
или формирование адреса элементов на паскале.


Игорь Шевченко   (2010-01-13 18:21:00) [16]


> как мне здесь добраться до элементов массива


Прочитав пост [2]


yantux   (2010-01-13 18:15:00) [17]

> Как узнал?
несколько десятков матриц, матрица большая, размер строки и столбца на несколько сотен элементов

> Что есть перебор? Это переход к следующему элементу?
да, при чём расчитывается по формуле, в которой используются большая часть элементов матрицы


yantux   (2010-01-13 18:11:00) [18]

> fld ?

type
mytype = record
a : integer; (* внутри ассемблерной функции это поле читается и пишется без проблем *)
b : array of array of extended; (* как читать и как писать в это поле внутри ассемлерной функции? *)
end;

procedure test1(var f : mytype) ; assembler;
asm
f.b[0,0];(* как правильно прочитать и правильно записать в это поле для кода с коммандами fpu? *)

fld ? (* как мне здесь добраться до элементов массива ? *)

end;

var
 t : mytype;
begin
 setlength(t,20,20);
 test1(t);
end;


Sha   (2010-01-13 18:11:00) [19]

> Cлабое место - перебор записей двумерного массива

Как узнал?

Что есть перебор? Это переход к следующему элементу?


yantux   (2010-01-13 18:09:00) [20]

> Ты же в окно CPU заглядывал

предлагаете накопипастить? боюсь наделать ошибок, ведь это жен не сплошной кусок кода, хотя надо подумать, может оно и так надо в тестовом примере сделать...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо