Вверх ↑
Этот топик читают: Гость
Ответов: 8926
Рейтинг: 823
#1: 2011-03-11 14:44:15 ЛС | профиль | цитата
Будет-ли когда-нибудь dcc64.exe, чтобы HiAsm-овские программы загружали многоядерные процессоры на 99%
Фича.jpg
карма: 19

0
файлы: 1Фича.jpg [9.9KB] [171]
Разработчик
Ответов: 26153
Рейтинг: 2127
#2: 2011-03-11 14:53:31 ЛС | профиль | цитата
Леонид писал(а):
чтобы HiAsm-овские программы загружали многоядерные процессоры на 99%

А в чем проблема загрузить только одно ядро сейчас
карма: 22

0
Ответов: 8926
Рейтинг: 823
#3: 2011-03-11 17:35:17 ЛС | профиль | цитата
nesco, так не загружается, максимум общей загрузки 26-27%, причём одно ядро 50-60%, второе 50-40%, а ещё два отдыхают, на старом компьютере оба ядра иногда грузились под 90-100%, ещё чуть-чуть и зависал, а этот филонит (говорит: "И так в пять раз быстрее старого считаю, хватит с тебя!" )
карма: 19

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#4: 2011-03-11 17:47:08 ЛС | профиль | цитата
Леонид писал(а):
И так в пять раз быстрее старого считаю, хватит с тебя!

Тебе что, скорости не хватает, нафига грузить проц, если есть возможность его не грузить
карма: 22

0
Ответов: 8926
Рейтинг: 823
#5: 2011-03-11 19:27:09 ЛС | профиль | цитата
nesco, запустил программку, считает Фурье, но не по 2^N, а по иному количеству точек, "Рассчёт выполнен за 790 215 мсек", а мог бы за 300 сек, сукин сын (МарьИвана продала квартиру за 5 000 000 руб, а могла бы продать за 5 500 000 )
карма: 19

0
Ответов: 1304
Рейтинг: 405
#6: 2011-03-12 19:37:22 ЛС | профиль | цитата
Леонид, только dcc64.exe? может ppcrossx64.exe сможет распараллелить задачу, хотя мне кажется что без дополнительных мозгодвижений результат будет равным. Скомпилил пару примеров, интересно что получиться на оси x64. В примере с числами Фибоначчи ряд n=50, для примера отрисовки необходимо увеличить Test.png до размера 2000х2000 или взять любое другое.
[url]http://forum.hiasm.com/forum_serv.php?q=56&id=2171 [/url]
http://forum.hiasm.com/forum_serv.php?q=56&id=2172
карма: 3

0
Ответов: 8926
Рейтинг: 823
#7: 2011-03-12 22:59:48 ЛС | профиль | цитата
MAV, почти никакой разницы, загрузка ядер гуляет между ними, одно иногда до 100%, но общая 25-30, лишь изредка до 37-40 на полсекунды
карма: 19

0
файлы: 4fib32.png [26.7KB] [129], fib64.png [27.8KB] [116], test32.png [20.7KB] [115], test64.png [20.9KB] [112]
Разработчик
Ответов: 26153
Рейтинг: 2127
#8: 2011-03-12 23:13:25 ЛС | профиль | цитата
Народ, а че вы делаете
Причем здесь x32 и x64
Как вы хотите заставить работать несколько ядер, когда загружаете одно Надо саму обработку распараллеливать на разные потоки. Каждый следующий поток открывается в новом ядре, пока они не кончаться, дальше -- по кругу
карма: 22

0
Ответов: 1304
Рейтинг: 405
#9: 2011-03-13 00:40:20 ЛС | профиль | цитата
попытка отправить сообщение №3
nesco писал(а):
Надо саму обработку распараллеливать на разные потоки

Если необходимо вычислить А, по А вычислить В, по В вычислить С итд., вот и кончилась многоядерность
nesco писал(а):
А в чем проблема загрузить только одно ядро сейчас

Непонятна суть явления, зачем ОС раскидывает один поток на все ядра которые только найдёт.
nesco писал(а):
Причем здесь x32 и x64

x64 приложение на x64 ОСИ должно работать чуть быстрее, правда с помощью моих примеров этого прироста не заметишь

карма: 3

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#10: 2011-03-13 00:47:48 ЛС | профиль | цитата
MAV писал(а):
Если необходимо вычислить А, по А вычислить В, по В вычислить С итд., вот и кончилась многоядерность

Есть специальные алгоритмы. Тут надо математику знать... А некоторые на этом докторские пишут
MAV писал(а):
Непонятна суть явления, зачем ОС раскидывает один поток на все ядра которые только найдёт

Чем равномернее раскидается по ядрам, тем меньше разогрев каждого ядра в отдельности, физика, батенька -- в простоях ядро не греется
MAV писал(а):
x64 приложение на x64 ОСИ должно работать чуть быстрее

Это с чего, с того, что разрядность адреса и слова увеличивается, и только Тут специально затачивать код надо под это дело, малейшее отклонение нивилирует все достоинства увеличинной разрядности
карма: 22

0
Ответов: 1304
Рейтинг: 405
#11: 2011-03-13 01:23:06 ЛС | профиль | цитата
nesco писал(а):
Это с чего, с того, что разрядность адреса и слова увеличивается, и только Тут специально затачивать код надо под это дело, малейшее отклонение нивилирует все достоинства увеличинной разрядности

[url писал(а):
http://www.viva64.com/ru/l/0002/[/url]]Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.


карма: 3

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#12: 2011-03-13 01:52:14 ЛС | профиль | цитата
MAV писал(а):
Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.

И как, получили прирост в 5-15%
карма: 22

0
Ответов: 8926
Рейтинг: 823
#13: 2011-03-13 13:00:55 ЛС | профиль | цитата
nesco, спасибо, великий NESCO! Теперь я имею представление о том, как можно нагрузить на 100% -- разбив вычисления на несколько потоков, хотя, конечно, это не всегда возможно. Пока не знаю, как это сделать в IC, но надеюсь кто-то знает code_22938.txt
карма: 19

0
файлы: 1code_22938.txt [3.9KB] [63]
Разработчик
Ответов: 26153
Рейтинг: 2127
#14: 2011-03-13 13:30:01 ЛС | профиль | цитата
Леонид писал(а):
Пока не знаю, как это сделать в IC

У нас же примеры есть -- компонент PBlur содержит в себе код распараллеливания потоков при расчете размытия Гаусса
карма: 22

0
Ответов: 8926
Рейтинг: 823
#15: 2011-03-13 13:34:28 ЛС | профиль | цитата
nesco, именно на это я и надеялся
карма: 19

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)