Фича.jpg
Этот топик читают: Гость
Ответов: 8926
Рейтинг: 823
|
|||
Будет-ли когда-нибудь dcc64.exe, чтобы HiAsm-овские программы загружали многоядерные процессоры на 99%
|
|||
карма: 19 |
| ||
файлы: 1 | Фича.jpg [9.9KB] [171] |
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Леонид писал(а): чтобы HiAsm-овские программы загружали многоядерные процессоры на 99%А в чем проблема загрузить только одно ядро сейчас |
|||
карма: 22 |
|
Ответов: 8926
Рейтинг: 823
|
|||
nesco, так не загружается, максимум общей загрузки 26-27%, причём одно ядро 50-60%, второе 50-40%, а ещё два отдыхают, на старом компьютере оба ядра иногда грузились под 90-100%, ещё чуть-чуть и зависал, а этот филонит (говорит: "И так в пять раз быстрее старого считаю, хватит с тебя!" )
|
|||
карма: 19 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Леонид писал(а): И так в пять раз быстрее старого считаю, хватит с тебя!Тебе что, скорости не хватает, нафига грузить проц, если есть возможность его не грузить |
|||
карма: 22 |
|
Ответов: 8926
Рейтинг: 823
|
|||
nesco, запустил программку, считает Фурье, но не по 2^N, а по иному количеству точек, "Рассчёт выполнен за 790 215 мсек", а мог бы за 300 сек, сукин сын (МарьИвана продала квартиру за 5 000 000 руб, а могла бы продать за 5 500 000 )
|
|||
карма: 19 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Леонид, только 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 |
|
Ответов: 8926
Рейтинг: 823
|
|||
MAV, почти никакой разницы, загрузка ядер гуляет между ними, одно иногда до 100%, но общая 25-30, лишь изредка до 37-40 на полсекунды
|
|||
карма: 19 |
| ||
файлы: 4 | fib32.png [26.7KB] [129], fib64.png [27.8KB] [116], test32.png [20.7KB] [115], test64.png [20.9KB] [112] |
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Народ, а че вы делаете
Причем здесь x32 и x64 Как вы хотите заставить работать несколько ядер, когда загружаете одно Надо саму обработку распараллеливать на разные потоки. Каждый следующий поток открывается в новом ядре, пока они не кончаться, дальше -- по кругу |
|||
карма: 22 |
|
Ответов: 1304
Рейтинг: 405
|
|||
попытка отправить сообщение №3
nesco писал(а): Надо саму обработку распараллеливать на разные потокиЕсли необходимо вычислить А, по А вычислить В, по В вычислить С итд., вот и кончилась многоядерность nesco писал(а): А в чем проблема загрузить только одно ядро сейчасНепонятна суть явления, зачем ОС раскидывает один поток на все ядра которые только найдёт. nesco писал(а): Причем здесь x32 и x64x64 приложение на x64 ОСИ должно работать чуть быстрее, правда с помощью моих примеров этого прироста не заметишь |
|||
карма: 3 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
MAV писал(а): Если необходимо вычислить А, по А вычислить В, по В вычислить С итд., вот и кончилась многоядерностьЕсть специальные алгоритмы. Тут надо математику знать... А некоторые на этом докторские пишут MAV писал(а): Непонятна суть явления, зачем ОС раскидывает один поток на все ядра которые только найдётЧем равномернее раскидается по ядрам, тем меньше разогрев каждого ядра в отдельности, физика, батенька -- в простоях ядро не греется MAV писал(а): x64 приложение на x64 ОСИ должно работать чуть быстрееЭто с чего, с того, что разрядность адреса и слова увеличивается, и только Тут специально затачивать код надо под это дело, малейшее отклонение нивилирует все достоинства увеличинной разрядности |
|||
карма: 22 |
|
Ответов: 1304
Рейтинг: 405
|
|||
nesco писал(а): Это с чего, с того, что разрядность адреса и слова увеличивается, и только Тут специально затачивать код надо под это дело, малейшее отклонение нивилирует все достоинства увеличинной разрядности[url писал(а): http://www.viva64.com/ru/l/0002/[/url]]Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции. |
|||
карма: 3 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
MAV писал(а): Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.И как, получили прирост в 5-15% |
|||
карма: 22 |
|
Ответов: 8926
Рейтинг: 823
|
|||
nesco, спасибо, великий NESCO! Теперь я имею представление о том, как можно нагрузить на 100% -- разбив вычисления на несколько потоков, хотя, конечно, это не всегда возможно. Пока не знаю, как это сделать в IC, но надеюсь кто-то знает code_22938.txt
|
|||
карма: 19 |
| ||
файлы: 1 | code_22938.txt [3.9KB] [63] |
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Леонид писал(а): Пока не знаю, как это сделать в ICУ нас же примеры есть -- компонент PBlur содержит в себе код распараллеливания потоков при расчете размытия Гаусса |
|||
карма: 22 |
|
Ответов: 8926
Рейтинг: 823
|
|||
nesco, именно на это я и надеялся
|
|||
карма: 19 |
|
15