powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Упираемся в скорость RAM или неэффективную работу кэша CPU?
25 сообщений из 30, страница 1 из 2
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374183
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа на C++ которая должна выполняться на определенном железе. Соответственно оптимизируем до тех пор пока не добьемся желаемого.
Но по мониторингу загрузки CPU/RAM/HDD. CPU 20%, RAM свободно 50%, HDD(2.5'' 500 GB rpm 7200) 20 МБсек (очередь меньше 1).
Во что здесь мы в принципе можем упираться:
1. В скорость RAM?
2. В неэффективную работу кэша CPU? (загрузка CPU показывает только загрузку ядер или так же и активность по синхронизации кэшей всех уровней L1/2/3?)
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374247
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне возможно, что упираешься в HDD. Я бы сначала это проверил, поставив рейд или SSD для теста.

А на счет CPU и памяти, то для начала надо узнать их характеристики, а так же хоть что-то о самой проге, чтобы иметь представление о том, что и в каких масштабах она выполняет. Иначе никаких предположений с этой стороны монитора никто не сделает. Единственный адекватный ответ - проблема может быть в чем угодно, если проблема вообще есть. Ну и очевидно лишь одно - раз проц не грузится, значит не хватает пропускной способности чего-то - шин, памяти, винтов.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374264
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPU,

наскоько я понимаю - ни то ни другое.
диспетчер задач показывает только время проведенное процессором в процессе.
если загрузка 20% - значит 80% времени процессор провел вне вашего кода. скорее всего жесткий диск, если поверить вышеизложенному.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374291
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нагрузку смотрю через perfomance monitor.
Железо:
Core i5 750 (4 Cores) по монитору нагрузки на всех ядрах она равномерная
RAM 16 GB DDR3 (PC12800, 1600МГц, CL9) dual channel по монитору занято 8 GB
HDD WD 500 GB rpm 7200, по монитору очередь меньше 1
Сначала тоже думал что HDD и 20 МБсек похоже на уход в рандомные операции, но перенос на RAM диск ускорения почти не дал.

Т.е. вопрос в следующем, в какие из шин может упираться при не полной загрузке CPU и как определить эту конкретную шину (кэш CPU, QPI, RAM)?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374309
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPU,

а почему именно шинам столько внимания?
Шины будут влиять на результат при 100% загрузке процессоров.

Что программа делает? Что там с семафорами, мьютексами, таймерами?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374347
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мое мнение - раз идет раскидывание по ядрам - то скорее всего затычки на синхронизации потоков.
это все при условии что в hdd вы уверены
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374366
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилRAM / кэш CPU,

а почему именно шинам столько внимания?
Шины будут влиять на результат при 100% загрузке процессоров.

Что программа делает? Что там с семафорами, мьютексами, таймерами?
А если выполнять тупо копирование из памяти в память, разве не упрется в шины при не 100% загрузке процессора?

Выполняет потоковую обработку информации, подсчитывает статистическую информацию. 4 потока выполняются максимально независимо. В основном общие данные только читаются, а результирующие данные раз в 10 меньше. По всей видимости CPU обрабатывает данные быстрее чем они успевают попасть из RAM в L1/2/3.

pavel_nvмое мнение - раз идет раскидывание по ядрам - то скорее всего затычки на синхронизации потоков.
это все при условии что в hdd вы уверены
Т.е. тупо в айдле ядра ждут друг друга?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374372
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPU,

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

Результирующие данные - куда поступают? Часом не визуализируются OpenGl/Direct3D?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374419
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилRAM / кэш CPU,

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

Результирующие данные - куда поступают? Часом не визуализируются OpenGl/Direct3D?
Т.е. при нехватки пропускной способности шин перфоманс монитор всегда покажет 100% загрузку CPU?

Результаты сохраняются на диск чанками по 1 МБ чтобы не выходить в рандомные операции. На экран никакая графика не отображается.

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37374961
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPU4 потока выполняются максимально независимо.Для 4 ядер потоков должно быть больше.
Сейчас же получается следующее (цифры с потолка) - один поток на ядро, 60 мс читается порция входных данных, 20 мс обсчет на CPU, 20 мс сохранение результатов. Итого 20% загрузки ядра. Если пропорции времени ввода/вывода ко времени расчета изменить не удастся, то нужно увеличивать количество потоков примерно в 5 раз. "Примерно" - потому что еще нужно следить как поведет себя дисковая подсистема.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375428
RAM / кэш CPU4 потока выполняются максимально независимо. из 11049989 получается что загружено 1 (одно) ядро и очередь из 1 запроса на HDD, т.е тупо выполняется один поток, КМК
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375603
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftRAM / кэш CPU4 потока выполняются максимально независимо.Для 4 ядер потоков должно быть больше.
Сейчас же получается следующее (цифры с потолка) - один поток на ядро, 60 мс читается порция входных данных, 20 мс обсчет на CPU, 20 мс сохранение результатов. Итого 20% загрузки ядра. Если пропорции времени ввода/вывода ко времени расчета изменить не удастся, то нужно увеличивать количество потоков примерно в 5 раз. "Примерно" - потому что еще нужно следить как поведет себя дисковая подсистема.
А не получится так что из-за увеличения кол-ва потоков добавится ещё время переключения между потоками и дополнительные расходы на синхронизацию кэшей, ведь каждый поток работает со своими данными и потребует полного обновления кэша L1/L2.
Т.е. увеличив в 5 раз кол-во потоков получим на один поток: 12 мс чтение данных, 4 мс обсчет CPU, 4 мс сохранение результатов, 4 мс переключение между потоками и синхронизация кэшей. Итого умножая на кол-во потоков получим все тоже самое даже больше.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375609
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не в 5 раз увеличивай. А для начала хотя бы по 2 потока на ядро.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375681
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPUА не получится так что из-за увеличения кол-ва потоков добавится ещё время переключения между потоками и дополнительные расходы на синхронизацию кэшей, ведь каждый поток работает со своими данными и потребует полного обновления кэша L1/L2.

Решай проблемы по мере возникновения.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375720
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPUА не получится так что из-за увеличения кол-ва потоков добавится ещё время переключения между потоками и дополнительные расходы на синхронизацию кэшей, ведь каждый поток работает со своими данными и потребует полного обновления кэша L1/L2.
Т.е. увеличив в 5 раз кол-во потоков получим на один поток: 12 мс чтение данных, 4 мс обсчет CPU, 4 мс сохранение результатов, 4 мс переключение между потоками и синхронизация кэшей. Итого умножая на кол-во потоков получим все тоже самое даже больше.Не получится. Переключение потоков происходит значительно быстрее, чем любая операция физического ввода/вывода на дисках. Да и все равно оно происходит, когда программа что-то читает или пишет.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375765
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конечно попробую, но чисто даже теоретически не вижу в чем может быть выигрышь за счет увеличения количества потоков. Если нехватает пропускной способности одной из шин, то с увеличением кол-во потоков скорость шин не увеличится.
Или в чем тут профит?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37375826
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще попробуй не только 8-16 потоков, но и 1-2. Чтобы уж наиболее полно картину зависимости увидеть.

Но все-таки, я не понимаю один момент. Данные, которые ты читаешь с диска помещаются в памяти (ты их загонял в RAM-диск), так? Следовательно, во время работы без RAM-диска, но на этой же памяти они все-равно должны бы в системный кеш все влезть и чтение с диска прекратить. Откуда 20 МБ/с чтение с диска постоянно?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37376178
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPUЕсть программа на C++ которая должна выполняться на определенном железе. Соответственно оптимизируем до тех пор пока не добьемся желаемого.
Но по мониторингу загрузки CPU/RAM/HDD. CPU 20%, RAM свободно 50%, HDD(2.5'' 500 GB rpm 7200) 20 МБсек (очередь меньше 1).
Во что здесь мы в принципе можем упираться:
1. В скорость RAM?
2. В неэффективную работу кэша CPU? (загрузка CPU показывает только загрузку ядер или так же и активность по синхронизации кэшей всех уровней L1/2/3?)

это все проверялось на одном ПК?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377285
RAM / кэш CPU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С0ВЕСТЬ, да, пока на одном.

Уменьшил число потоков до 2 скорость упала. Загрузка CPU 10-15%.
Увеличил число потоков до 8 скорость почти не изменилась. Все тоже самое.

Так кто-нибудь может сказать как посмотреть загрузку шин и выяснить являются ли они узким местом?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377328
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPUС0ВЕСТЬ, да, пока на одном.

Уменьшил число потоков до 2 скорость упала. Загрузка CPU 10-15%.
Увеличил число потоков до 8 скорость почти не изменилась. Все тоже самое.А до 20 ?

RAM / кэш CPUТак кто-нибудь может сказать как посмотреть загрузку шин и выяснить являются ли они узким местом?Забудьте вы пока про эти шины (процессорные) и, попутно, про кэш CPU. У вас значительно более грубая проблема. Имхо, либо потоки где-то ждут друг друга (синхронизация потоков), либо устройства - CPU/HDD.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377355
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPUС0ВЕСТЬ, да, пока на одном.
Уменьшил число потоков до 2 скорость упала. Загрузка CPU 10-15%.
Увеличил число потоков до 8 скорость почти не изменилась. Все тоже самое.
Так кто-нибудь может сказать как посмотреть загрузку шин и выяснить являются ли они узким местом?

Попобовать на других машинах?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377505
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAM / кэш CPU,

что будет при отключении записи результатов?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377652
RAM / кэш CPUВыполняет потоковую обработку информации, подсчитывает статистическую информацию. 4 потока выполняются максимально независимо. В основном общие данные только читаются, а результирующие данные раз в 10 меньше. А если не 8 а 80 потоков сделать?

А чанки данных для обработки какого размера, 16кб, 1Мб, 100Мб? может разбить на более мелкие или наоборот, укрупнить, может маленький объем потоком обрабатывается слишком быстро и он тупо ждет диск в ожидании следующего чанка?
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377657
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как мне кажетсяRAM / кэш CPUВыполняет потоковую обработку информации, подсчитывает статистическую информацию. 4 потока выполняются максимально независимо. В основном общие данные только читаются, а результирующие данные раз в 10 меньше. А если не 8 а 80 потоков сделать?

А чанки данных для обработки какого размера, 16кб, 1Мб, 100Мб? может разбить на более мелкие или наоборот, укрупнить, может маленький объем потоком обрабатывается слишком быстро и он тупо ждет диск в ожидании следующего чанка?
Ну если ты читал выше, то ТС якобы провел успешный тест с RAM-диском вместо HDD. Тогда проблем со чтением быть не должно. Или же можно усомниться в тесте.

А так надо ТСу посоветовать профилированием заняться.
...
Рейтинг: 0 / 0
Упираемся в скорость RAM или неэффективную работу кэша CPU?
    #37377855
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonА так надо ТСу посоветовать профилированием заняться.
+1

Об чём тут вообще топик? Без идентификации узкого места как-то слишком общо
получается.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Упираемся в скорость RAM или неэффективную работу кэша CPU?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]