Форум Енот

Форум Енот (http://moemnenie.club/index.php)
-   База Знаний (http://moemnenie.club/forumdisplay.php?f=49)
-   -   Вопрос про ассемблер (http://moemnenie.club/showthread.php?t=13693)

масон 26.03.2009 14:32

Вопрос про ассемблер
 
Кто нить пишет на ассемблере?
А то есть проблемка - я пишу прогу. Она использует меод гаусса, но он работает в десятки раз медленнее, чем например в матлабе. Требуется переписать метод гаусса на ассемблере. Сейчас вот трахаюсь с ним. Может у кого нить есть готовая реализация?

Logik P-ur 26.03.2009 14:47

Цитата:

Сообщение от gidomasson (Сообщение 746409)
Сейчас вот трахаюсь с ним.

маниак сексуальный.

По понтам, выложенным на форуме, предполагается, что с оным Либов мог быть знаком. Однако учитывая, что это понты, может тебе фрилансера найти?

SoapMaker 26.03.2009 14:49

Цитата:

Сообщение от Logik P-ur (Сообщение 746433)
может тебе фрилансера найти?

да темболее, что сейчас в кризис за копейки будут писать

SoapMaker 26.03.2009 14:50

Цитата:

Сообщение от gidomasson (Сообщение 746409)
А то есть проблемка - я пишу прогу

для контроллера что ли

а чего не на Си то ?

масон 26.03.2009 14:51

Цитата:

Сообщение от Logik P-ur (Сообщение 746433)
По понтам, выложенным на форуме, предполагается, что с оным Либов мог быть знаком. Однако учитывая, что это понты, может тебе фрилансера найти

Да ну нафик Задачка не тривиальная в принципе
Тут еще не каждый возмется. Я надеялся что есть уже готовая реализация

масон 26.03.2009 14:51

Цитата:

Сообщение от SoapMaker (Сообщение 746445)
для контроллера что ли

а чего не на Си то ?

нет, под PC, а на С я уже написал, но она медленно работает

SoapMaker 26.03.2009 14:55

да компиляторы современные не хуже код делают чем ассемблер

может у тебя в коде где то косяки

лишние вычисления зацикливаются

кинь в личку если не жалко, я хоть не насильник, но гляну

SoapMaker 26.03.2009 14:55

интерполяцию делаешь для чего то ?

масон 26.03.2009 15:03

щас кину
но я просто кучу библиотек уже протестил
так штааа фик его знает

масон 26.03.2009 15:03

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

АК 26.03.2009 19:49

Цитата:

Сообщение от gidomasson (Сообщение 746409)
Кто нить пишет на ассемблере?
А то есть проблемка - я пишу прогу. Она использует меод гаусса, но он работает в десятки раз медленнее, чем например в матлабе. Требуется переписать метод гаусса на ассемблере. Сейчас вот трахаюсь с ним. Может у кого нить есть готовая реализация?

Готовой реализации конечно нет, лично мне не приходилось, как-то именно на счет метода Гаусса ассемблером заморачиваться:-). Но на ассемблере я писал в свое время много. У тебя есть записанный алгоритм необходимых вычислений? Могу посмотреть, если реальная надежда на этом, что-то выиграть.

АК 26.03.2009 19:51

Цитата:

Сообщение от SoapMaker (Сообщение 746445)
Цитата:

Сообщение от gidomasson (Сообщение 746409)
А то есть проблемка - я пишу прогу

для контроллера что ли

а чего не на Си то ?

Предлагаю написать на ассемблере и С и распечатать машинные коды после трансляции:-). Что бы ты увидел разницу:-)

SoapMaker 26.03.2009 19:56

Цитата:

Сообщение от АК (Сообщение 746748)
Предлагаю написать на ассемблере и С и распечатать машинные коды после трансляции:-). Что бы ты увидел разницу:-)

валяй


только сравнивай не целиком код, а имеенно функцию.

SoapMaker 26.03.2009 19:56

можно сделать гораздо проше


написать одну и туже функцию

на асме и на С

и сравнить быстродействие

АК 26.03.2009 19:59

Цитата:

Сообщение от SoapMaker (Сообщение 746755)
Цитата:

Сообщение от АК (Сообщение 746748)
Предлагаю написать на ассемблере и С и распечатать машинные коды после трансляции:-). Что бы ты увидел разницу:-)

валяй


только сравнивай не целиком код, а имеенно функцию.

Сравнивать надо подпрограммы:-).
Т.е. все МК от обращения до возврата результата:-)

SoapMaker 26.03.2009 20:14

Цитата:

Сообщение от АК (Сообщение 746763)
Сравнивать надо подпрограммы:-).
Т.е. все МК от обращения до возврата результата:-)

подпрограмма это и есть функция.

вообще надо сравнивать быстродействие

АК 26.03.2009 20:44

Цитата:

Сообщение от SoapMaker (Сообщение 746792)
Цитата:

Сообщение от АК (Сообщение 746763)
Сравнивать надо подпрограммы:-).
Т.е. все МК от обращения до возврата результата:-)

подпрограмма это и есть функция.

вообще надо сравнивать быстродействие

Не совсем:-). Фунцию ты можешь в вормулу вставить подпрограмму не всегда:-)

SoapMaker 26.03.2009 21:03

Цитата:

Сообщение от АК (Сообщение 746852)
Фунцию ты можешь в вормулу вставить подпрограмму не всегда:-)


имеешь виду рекурсию что ли ?

или вложенные ?

АК 26.03.2009 21:33

Просто функция это часть выражения в языках высокого уровня а подпрограмма это программа обмениваяющаяся с вызывающей её программой данными. Вот где-то так

Санечка 27.03.2009 01:17

Я пишу..
.....................
советую посетить сайт http://wasm.ru
//////////////////////////////////
на этом сайте найдете все в том числе и
различные интерполяции и графичские решения..

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

и еще им можно подправлять готовый код без перекомпиляции проги, а также готовить любые двоичные дланные под любой формат..

короче если кого интересует
могу дать и другие рекомендации.

Санечка 27.03.2009 01:25

Вот ссылка на чейм
http://modul.da-da.biz/tmp/fasm.chm
//////////////////////
это нелп к компилятору
сам компилятор качайте с сайта Wasm.ru
http://wasm.ru/baixado.php?mode=tool&id=71
илии на самом сайте исходника..
http://flatassembler.net/index.php

Санечка 27.03.2009 01:28

Цитата:

Сообщение от SoapMaker (Сообщение 746758)
и сравнить быстродействие

главное объем кода
на сях ты не сможешь написать очень короткую прогу под винду - работающую
Я знаю что рекорд на асме на сегодня это 13 байт
- настоящий работающий под винду EXE.....
в PE-формате.
.................
есть и другие преемущества
но для этого надо писать
а не болтать..

масон 31.03.2009 09:18

Цитата:

Сообщение от Санечка (Сообщение 747182)
мой любимый ассемблер fasm

Спасибо за ссылки, про fasm слышал
я делаю ассемблерную вставку в код на С
Так удобнее
ТЫ не пробовал под SSE2 оптимизировать код?
НА некоторых задачах по слухам в несколько раз скорость увеличивается

масон 31.03.2009 09:19

Спасибо всем за советы
Я попробую написать сам, а спрашивал я потому что нужна была готовая реализация. Если напишу выложу код на с++ и асме и сравню быстродействие

Санечка 31.03.2009 16:11

Цитата:

Сообщение от gidomasson (Сообщение 751481)
ТЫ не пробовал под SSE2 оптимизировать код?

пробовал..
но только пробовал, для интереса
применять не приходилось
там на WASM- очень много интересных статей.
Поищи....в том числе и SSE2 оптимизация..
Советую обратить внимание на новые команды пентиума 3-4.. Там есть команды (кстати они сяшными компиляторами не распознаются, не все правда) - которые позволяют одновременно умножать/делить сразу 4 плавающих двойной точности...
Карочи многии компиляторы, а вообще практически все - новые команды процессоров неиспользуют..

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

Цитата:

Сообщение от gidomasson (Сообщение 751481)
НА некоторых задачах по слухам в несколько раз скорость увеличивается

это вовсе не слухи а умение правильно распределить работу конвеера у проца...

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

SoapMaker 31.03.2009 17:09

Цитата:

Сообщение от Санечка (Сообщение 747186)
на сях ты не сможешь написать очень короткую прогу под винду - работающую
Я знаю что рекорд на асме на сегодня это 13 байт

а нафиг

дефицит пространства на ЖД сейчас не наблюдается

Санечка 31.03.2009 19:11

Цитата:

Сообщение от SoapMaker (Сообщение 752003)
а нафиг

а нафиг
люди лезут на Джамалунгму
или с Эйфеля на парашюте?

за тем же сынок...
за экстазом

но тибе похоже это не дано...

ты я так понял готов всю жизнь
радоваться комиксам..
ну так радуйся.

SoapMaker 31.03.2009 23:27

Цитата:

Сообщение от Санечка (Сообщение 752147)
а нафиг
люди лезут на Джамалунгму
или с Эйфеля на парашюте?

Бугага

написать
Hello world

в 5 байтах

Джомолунгма

насмешил :mrgreen:

Санечка 01.04.2009 00:01

SoapMaker, шол бы ты лесом ламерок...
ты хоть в курсе сколько весит PE-заголовок...

SoapMaker 01.04.2009 00:03

Цитата:

Сообщение от Санечка (Сообщение 752696)
ты хоть в курсе сколько весит PE-заголовок...

где то в старой книжке есть

только лет 7 этим не заморчачивался
уже

а зачем ?

Санечка 01.04.2009 00:25

Цитата:

Сообщение от SoapMaker (Сообщение 752698)
а зачем

а чтоб глупых вопросов не задавал.

ти
иди вон там гусля новую серию из тырнета пабликует..
подписи не кому ставить.
чего тибе со стариками тереть терки...
не интересно ведь.

Санечка 01.04.2009 00:28

gidomasson, кстати есть и другой путь решения твоей задачи..
Это написание ее на си, а потом ручная оптимизация асемблеровских кодов...с последующей укладкой в длл....

zz-tOp 22.04.2009 03:57

Трындец... я так и не понял, чем уже перестал устраивать стары-добрый Си или С++?
Асм -это .. это экстремизмом попахивает. Не верю, что из-за того, что не хватате быстрдействия, нужно вставлять критические участки кода на асме.

Я подзабыл асм ХХХ86, но в принципе, судя по заявкам, там небольшой фрагмент кода надо написать, поэтому, думаю, ты смог бы и сам разобраться. тебе же не что-то супер-пупер на 10000 строк кода лепить?

Все равно нихера не понимаю.. почему не хватает Сяхи?
(Может сразу в двоичных кодах забабахать, ассемблируя руками?:)

M_G_M 25.04.2009 14:58

Цитата:

Сообщение от gidomasson (Сообщение 746450)
Цитата:

Сообщение от SoapMaker (Сообщение 746445)
для контроллера что ли

а чего не на Си то ?

нет, под PC, а на С я уже написал, но она медленно работает

Что такое С и ассемблер я как-то понял, но что есть метод Гауссса из головного поста понять не возможно.

SoapMaker 25.04.2009 15:01

решении систем линейных уравнений

M_G_M 25.04.2009 15:07

Цитата:

Сообщение от zz-tOp (Сообщение 774393)
Трындец... я так и не понял, чем уже перестал устраивать стары-добрый Си или С++?
Асм -это .. это экстремизмом попахивает. Не верю, что из-за того, что не хватате быстрдействия, нужно вставлять критические участки кода на асме.

Я подзабыл асм ХХХ86, но в принципе, судя по заявкам, там небольшой фрагмент кода надо написать, поэтому, думаю, ты смог бы и сам разобраться. тебе же не что-то супер-пупер на 10000 строк кода лепить?

Все равно нихера не понимаю.. почему не хватает Сяхи?
(Может сразу в двоичных кодах забабахать, ассемблируя руками?:)

Вообще-то современные компиляторы переделывают Сишный код в ассемблер куда более эффективно, чем программист. Лет 15 назад скорость увеличивалась в 5-7 раз от рукописных ассемблеров, затем, во времена первых кэшей всё сравнялось. Теперь, мало того, что ассемблер для новых процессеров ну очень специфический, он всё равно не даёт желаемого эффекта.

ПС. Возможно в Матлабе просто метод Гаусса Якоби используется. Реальные обратные матрицы вещь трудоёмкая, а главное даёт такую же степень приближения, что и лобовой удар с дабл флоат.

АК 25.04.2009 18:13

Цитата:

Сообщение от SoapMaker (Сообщение 752003)
Цитата:

Сообщение от Санечка (Сообщение 747186)
на сях ты не сможешь написать очень короткую прогу под винду - работающую
Я знаю что рекорд на асме на сегодня это 13 байт

а нафиг

дефицит пространства на ЖД сейчас не наблюдается

Программы ведь не на ЖД исполняються:-)

АК 25.04.2009 18:16

Цитата:

Сообщение от zz-tOp (Сообщение 774393)
Трындец... я так и не понял, чем уже перестал устраивать стары-добрый Си или С++?
Асм -это .. это экстремизмом попахивает. Не верю, что из-за того, что не хватате быстрдействия, нужно вставлять критические участки кода на асме.

Я подзабыл асм ХХХ86, но в принципе, судя по заявкам, там небольшой фрагмент кода надо написать, поэтому, думаю, ты смог бы и сам разобраться. тебе же не что-то супер-пупер на 10000 строк кода лепить?

Все равно нихера не понимаю.. почему не хватает Сяхи?
(Может сразу в двоичных кодах забабахать, ассемблируя руками?:)

Зюзя сколько машинного кода на задачу выйдет как раз от мастерства программиста на ассме и зависит! Вот-так -то физик! Если не можешь не мучай голову понапрасну:-)

M_G_M 25.04.2009 22:05

Цитата:

Сообщение от АК (Сообщение 777729)
Зюзя сколько машинного кода на задачу выйдет как раз от мастерства программиста на ассме и зависит! Вот-так -то физик! Если не можешь не мучай голову понапрасну:-)

Брехня.
Для задач, подобных той, что упоминалась (из лин. алгебры), утверждать, что программист может улучшить компилятор, это примерно, как утверждать, что Союз ТМ пристыковывать к МКС удобней вручную по показаниям GPS.

АК 26.04.2009 22:10

Цитата:

Сообщение от M_G_M (Сообщение 777868)
Цитата:

Сообщение от АК (Сообщение 777729)
Зюзя сколько машинного кода на задачу выйдет как раз от мастерства программиста на ассме и зависит! Вот-так -то физик! Если не можешь не мучай голову понапрасну:-)

Брехня.
Для задач, подобных той, что упоминалась (из лин. алгебры), утверждать, что программист может улучшить компилятор, это примерно, как утверждать, что Союз ТМ пристыковывать к МКС удобней вручную по показаниям GPS.

Похоже Вы никогда на Асме не писали, потому, как сравнение в корне неверное. Скорее ближайший аналог - это как ручную работу с конвеерной сборкой сравнивать.:-)


Часовой пояс GMT +3, время: 03:48.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot