![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно читать запись в record ассемблерной функции? [D2005]
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 заглядывал
предлагаете накопипастить? боюсь наделать ошибок, ведь это жен не сплошной кусок кода, хотя надо подумать, может оно и так надо в тестовом примере сделать...