|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|
Чтение данных видеокартой с диска nvme ssd31.08.2025, 19:29. Показов 2576. Ответов 59
Метки нет (Все метки)
Здравствуйте.
Есть математика, которая успешно считается на видеокарте, но для дальнейшего хода расчетов необходимо получить пару байт с диска. Сейчас есть убогая реализация через процессор, которая серьезно тормозит скорость расчета. Есть ли возможность видеокарте самой читать данные с nvme ssd? Читал про GPUDirect Storage, но как понял, это тоже чтение с помощью процессора...
0
|
|
| 31.08.2025, 19:29 | |
|
Ответы с готовыми решениями:
59
CUDA k-means ошибка чтения Маленький супер-компьютер для вычислений с помощью видеокарт NVIDIA с применением технологии CUDA. #Вычисления на GPU (GPGPU - вычислений на видеокартах): CUDA, OpenCL, AMD APP и DirectCompute |
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|||
| 01.09.2025, 20:59 | |||
|
Добавлено через 1 минуту
0
|
|||
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||
| 01.09.2025, 20:59 [ТС] | ||
|
jcxz, по поводу цитирования - извините там ник похож...
Как это реализуется?
0
|
||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 01.09.2025, 21:14 | |
|
Недавно на хабре читал, как человек ускоряет вычисления. Как же он делал ?....
Там точно много времени уходит процем грузить в гпу, на самые быстрые регистры. Ожидалось, что не получится. В итоге получается быстрее, в 10 раз вроде. Там такая печка, что проц и карта горячие. Но может там задача наверное другая.
0
|
|
|
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
|
||
| 01.09.2025, 21:31 | ||
|
Например - создать свою плату, к которой будет подключаться и ваша видеокарта и на которой установить нужный объём памяти. Любой - хоть ОЗУ хоть флешь. Вы писали про "прочитать пару байт". Этих "пар байт" сколько нужно читать в секунду? И какова требуемая максимальная задержка чтения? В цифрах. За сколько мкс требуется прочитать означенную пару байт из памяти и сравнить с заданным шаблоном?
0
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 01.09.2025, 21:31 | ||
|
Тут ещё нужно посмотреть, как происходит взаимодействие между хостом и GPU, т.е. как GPU передаёт информацию CPU о том, что нужно загрузить данные. И как CPU сообщает, что всё готово и загружено в GPU. Если это происходит через частый вызов kernel-функции, а вычисления короткие, то на накладные расходы по запуску/синхронизации может тратиться много времени. Соответственно, можно сделать, например, спин-луп, который хоть и будет грузить проц, но по идее должен сократить накладные расходы из-за отсутствия перезапуска функции ядра.
0
|
||
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|||
| 01.09.2025, 22:01 [ТС] | |||
|
jcxz,
При работе GPU за 1 с. рассчитывается 6 мил. точек, а сравнения как раз и нужно сейчас реализовать. ![]() Т.е. желаемый результат, чтобы за 0.16 мкс читался байт для сравнения. ![]() Я понимаю, что при IOPS в 1 мил. диска nvme это мечты, но хотя бы приблизится к 1 мкс.
0
|
|||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
||||
| 01.09.2025, 22:12 | ||||
|
Вот например, данные из стека выполняются быстрее, а из памяти достать еще надо, это время. Любая шина всегда тормозит, она узкая, вот почему NVMe стоит, он быстрее. Добавлено через 6 минут Сколько у NVMe скорость ? "3500 МБ/с для моделей с PCIe 3.0 до более 7000 МБ/с (и даже 14 800 МБ/с) для накопителей нового поколения с PCIe 5.0, что значительно быстрее, чем у SATA SSD (около 550 МБ/с)."
0
|
||||
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||
| 01.09.2025, 22:20 [ТС] | ||
|
Jin X, забыл уточнить, сейчас вся реализация сделана под Windows. Соответственно, пока читаем это...
То что понял, в DirectX чтение идёт все равно через CPU и только декодирование ложится на видеокарту. А как в GPUDirect Storage сделана реализация: также через CPU или есть своя фишка общения на прямую? Чисто теоретически видеокарта и диск nvme сидят (могут сидеть) на одной шине PCI и ВОЗМОЖНО есть метод их подружить. Добавлено через 6 минут a380,
0
|
||
|
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
|
||||
| 01.09.2025, 22:29 | ||||
|
Только описать технически задачу: Нужно читать столько-то и столько-то байт, за такое-то время. Вполне возможно, что там найдутся люди, решавшие похожие задачи. Нужно только найти чипы памяти подходящего объёма. У Micron вроде как есть параллельная флешь на 1 и 2 Tbit. Получается 8 или 4 таких чипа - и задача решаема. Вопрос только можно ли их купить? И даташит на них Micron выдаёт только с регистрацией. Но скорей всего есть и другие чипы. Либо то же самое - на RAM-чипах. Добавлено через 2 минуты Память нужно садить прямо на шину данных карты. Для макс. скорости. Без всяких NVMe и т.п.
0
|
||||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
||||
| 01.09.2025, 23:04 | ||||
|
Про какую шину речь ? Терабайт из медленного флеша ? И какая разрядность ? Еще многое неизвестно. Например какие команды используются в гпу для вычисления. Ладно. Чем дальше в лес, тем толще партизаны. Ну собсно, варианты обсудили, больше добавить нечего. Тут копать надо глубоко, клещами вытаскивать инфо, это надолго. И наверное другой форум нужен.
0
|
||||
|
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
|
||||
| 01.09.2025, 23:36 | ||||
|
Вы мнение ремонтников что-ль озвучиваете? ![]() Memory Organization: 256G x 8bit при тактовой 333МГц. Т.е. - посадить 4шт. таких на шину в параллель и можно читать из них по 32 бита за каждые несколько тактов (в зависимости от схемы согласования и диаграммы цикла чтения микросхемы). Это "медленно"??? Это будет на несколько порядков быстрее чем любое из того, что вы предложили на NVMe. Потому как без всяких прокладок - чтение будет идти напрямую из чипа, находящегося в адресном пространстве контроллера карты. Кроме того - такое решение легко масштабируемо. Добавлением бОльшего числа чипов памяти. ТС вроде писал, что в будущем ему хочется ещё бОльший объём. А с увеличением объёма, время доступа к памяти не изменится. Только тот даташит, что я выше привёл - это какой-то обрезок. Полный они дают только с регистрацией: https://www.micron.com/search-... -tech-docs Быстрый произвольный доступ с малым временем доступа - это только параллельная память. Погуглите что такое произвольный доступ, а что такое - последовательный. В чём между ними различие.
0
|
||||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 02.09.2025, 00:00 | |
|
jcxz,
Так это флешка. Какое время доступа ? Частота тут не причем. И у автора флешка NVMe, причем быстрая. И там не 8 бит. И произвольный доступ есть. Набрать RAM на 1 ТБ, это что-то из области фантастики. Алгоритм надо смотреть, что там вычисляют. Я вроде сохранил эту страницу из хабра, найти надо, там проц что-то долго раскидывает, потом одной командой видеокарта все считает. Короче, надо знать, как считать надо, потом думать. А эти штучки-1 байт считать, это непонятно. Про предсказание было сказано, больше ничего не придумать.
0
|
|
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||
| 02.09.2025, 01:17 [ТС] | ||
|
a380,
0
|
||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
||
| 02.09.2025, 05:43 | ||
|
Выше было сказано про ускорение считывания с диска, за счет предсказания. Несколько версий. Может статистику вести, какие блоки чаще читаются ? Типа в кеш положить и там их приколотить. Но это такое... что там измеряется ? Может регулярность какая-то есть с погрешностью. Вырожденные данные вычислить и их перепрыгивать. Или блок расчета сократить, например в сортировке данных сначала блоки раскидываются по алфавиту, потом блоки сортируются каждый отдельно, это сильно ускоряет. Там и многопроцессорность хорошо работает. Или критичные участки кода переписать на ассемблер, это может дать прирост скорости в 10-100 раз, проверено на практике. Но не всегда это работает, все по ситуации Если просто про ускорение чтения с диска, то уже было сказано.
0
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 02.09.2025, 12:44 | ||
|
Добавлено через 4 минуты Т.е. всё как обычно, только читаем сразу в память GPU, а не в RAM. Добавлено через 3 минуты У вас как эти этапы вычислений и проверок вообще организованы? Каждый раз запускается функция ядра? Или всё делается в одном запуске? И что касается скорости чтения. Если, например, тест (какого-нибудь CrystalDiskMark) 4KQ1T1 показывает 100 МБ/с (допустим), это значит, что у вас на одно рандомное чтение тратится 40 мкс.
0
|
||
|
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
|
||||
| 02.09.2025, 13:06 | ||||
|
Или всё-таки - произвольный посекторный? ![]() Добавлено через 5 минут Только искать - как добавить необходимый объём параллельной памяти на шину контроллера карты.
0
|
||||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|||||
| 02.09.2025, 15:52 | |||||
|
Добавлено через 6 минут
0
|
|||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 02.09.2025, 16:17 | ||
|
0
|
||
|
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 02.09.2025, 16:27 | |
|
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 02.09.2025, 16:37 | ||
![]() Про 1 мкс можно тоже забыть. Оперативная память — единственный вариант, который может требуемую пропускную способность. Установить 1 ТБ оперативной памяти. Дорого, но реально
0
|
||
| 02.09.2025, 16:37 | |
|
Помогаю со студенческими работами здесь
40
Поддержка OpenCL AMD на видеокарте ATI Radeon HD 6370M Ищу драйвер видеокарты nvidia GT520m cuda 1Gb для ноутбука Acer Aspire 5750G под win XP. видеокарта openCL / cuda Видеокарта не поддерживает OpenCL что делать? Как использовать GPU моей видеокарты для выполнения кода? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|