Форум программистов, компьютерный форум, киберфорум
CUDA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52

Чтение данных видеокартой с диска nvme ssd

31.08.2025, 19:29. Показов 2576. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть математика, которая успешно считается на видеокарте, но для дальнейшего хода расчетов необходимо получить пару байт с диска. Сейчас есть убогая реализация через процессор, которая серьезно тормозит скорость расчета.
Есть ли возможность видеокарте самой читать данные с nvme ssd?

Читал про GPUDirect Storage, но как понял, это тоже чтение с помощью процессора...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2025, 19:29
Ответы с готовыми решениями:

CUDA k-means ошибка чтения
Здравствуйте. Хотел реализовать алгоритм K-means (функция fun). Но при запуске все значения нули....

Маленький супер-компьютер для вычислений с помощью видеокарт NVIDIA с применением технологии CUDA.
В моей голове созрела идея собрать машину для вычислений с помощью видеокарт NVIDIA с применением...

#Вычисления на GPU (GPGPU - вычислений на видеокартах): CUDA, OpenCL, AMD APP и DirectCompute
GPGPU («GPU общего назначения») — техника использования графического процессора видеокарты для...

59
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 20:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от As17 Посмотреть сообщение
первое вычисление оно же и есть грубое
Наверное какие-то всплески есть, это уже х2 можно ускорить. Может больше.

Добавлено через 1 минуту
Цитата Сообщение от jcxz Посмотреть сообщение
1TB в адресное пространство видеокарты.
Такая карта есть ? Хочу такую
0
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
01.09.2025, 20:59  [ТС]
jcxz, по поводу цитирования - извините там ник похож...

Я вроде и не предлагал урезать базу. Нужно 1TB - так и подключайте 1TB в адресное пространство видеокарты.
Я верно понимаю: есть возможность объявить 1ТБ дискового пространства (а другого носителя этого ТБ у нас нет) как память видеокарты. И видеокарта будет работать (только чтение) с этой памятью на прямую.

Как это реализуется?
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
Цитата Сообщение от As17 Посмотреть сообщение
Я верно понимаю: есть возможность объявить 1ТБ дискового пространства (а другого носителя этого ТБ у нас нет) как память видеокарты. И видеокарта будет работать (только чтение) с этой памятью на прямую.
Как это реализуется?
Нет. Речь о том, чтобы добавить физическую память на шину видеокарты.
Например - создать свою плату, к которой будет подключаться и ваша видеокарта и на которой установить нужный объём памяти. Любой - хоть ОЗУ хоть флешь.

Вы писали про "прочитать пару байт". Этих "пар байт" сколько нужно читать в секунду? И какова требуемая максимальная задержка чтения? В цифрах. За сколько мкс требуется прочитать означенную пару байт из памяти и сравнить с заданным шаблоном?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6813 / 2053 / 238
Регистрация: 14.12.2014
Сообщений: 4,314
Записей в блоге: 12
01.09.2025, 21:31
Цитата Сообщение от As17 Посмотреть сообщение
DirectStorage – это API для Windows (Win32 API), который позволяет языкам, таким как C и C++, напрямую использовать высокоскоростные SSD-накопители (NVMe) для ускорения передачи данных в GPU, УМЕНЬШАЯ нагрузку на центральный процессор и ускоряя загрузку игровых ресурсов.
Это компонент DirectX, к GPUDirect Storage не имеющая отношения. Но в целом, цель в контексте вашей задачи у них одна: загрузить данные из диска напрямую в GPU. Одна технология работает в Linux, другая — в Windows.
Тут ещё нужно посмотреть, как происходит взаимодействие между хостом и GPU, т.е. как GPU передаёт информацию CPU о том, что нужно загрузить данные. И как CPU сообщает, что всё готово и загружено в GPU. Если это происходит через частый вызов kernel-функции, а вычисления короткие, то на накладные расходы по запуску/синхронизации может тратиться много времени. Соответственно, можно сделать, например, спин-луп, который хоть и будет грузить проц, но по идее должен сократить накладные расходы из-за отсутствия перезапуска функции ядра.
0
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
01.09.2025, 22:01  [ТС]
jcxz,
создать свою плату, к которой будет подключаться и ваша видеокарта и на которой установить нужный объём памяти.
Такими компетенциями я не обладаю. Вы реально можете такое сделать?
Этих "пар байт" сколько нужно читать в секунду? И какова требуемая максимальная задержка чтения? В цифрах. За сколько мкс требуется прочитать означенную пару байт из памяти и сравнить с заданным шаблоном?
Для одной сверки читаем один байт. При работе CPU за 1 с. рассчитывается 0,2 мил. точек при этом производится 0,3 мил. сравнений.
При работе GPU за 1 с. рассчитывается 6 мил. точек, а сравнения как раз и нужно сейчас реализовать.
Т.е. желаемый результат, чтобы за 0.16 мкс читался байт для сравнения.
Я понимаю, что при IOPS в 1 мил. диска nvme это мечты, но хотя бы приблизится к 1 мкс.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 22:12
Цитата Сообщение от jcxz Посмотреть сообщение
создать свою плату,
Спаять ?
Цитата Сообщение от jcxz Посмотреть сообщение
добавить физическую память на шину видеокарты.
Видеопамять самая быстрая для гпу, пусть будет 24 Гб, никак 1 ТБ не влезает.
Вот например, данные из стека выполняются быстрее, а из памяти достать еще надо, это время.
Любая шина всегда тормозит, она узкая, вот почему NVMe стоит, он быстрее.

Добавлено через 6 минут
Цитата Сообщение от As17 Посмотреть сообщение
1 мкс.
Это 1 Megahertz, что-то мало. Цифра правильная ?
Сколько у 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,
Цифра правильная ?
Да. То что вы привели это показатели последовательной записи/чтения на диск. Я вам указал параметр случайного записи/чтения (IOPS) (именно в этом режиме мы работаем) и это ещё довольно хорошая скорость.
0
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
01.09.2025, 22:29
Цитата Сообщение от As17 Посмотреть сообщение
Такими компетенциями я не обладаю. Вы реально можете такое сделать?
Я нет. Но попробуйте обратиться на https://electronix.ru/forum
Только описать технически задачу: Нужно читать столько-то и столько-то байт, за такое-то время. Вполне возможно, что там найдутся люди, решавшие похожие задачи.

Цитата Сообщение от As17 Посмотреть сообщение
При работе GPU за 1 с. рассчитывается 6 мил. точек, а сравнения как раз и нужно сейчас реализовать.
Т.е. желаемый результат, чтобы за 0.16 мкс читался байт для сравнения.
Я понимаю, что при IOPS в 1 мил. диска nvme это мечты, но хотя бы приблизится к 1 мкс.
Если подключить память на параллельную шину какого-либо микронтроллера, то прочитать байт по произвольному адресу из такой памяти - вполне реально. И кратно быстрее можно прочитать. У вас в карте такой же контроллер. Нужно эту память подключить к его шине.

Нужно только найти чипы памяти подходящего объёма. У Micron вроде как есть параллельная флешь на 1 и 2 Tbit. Получается 8 или 4 таких чипа - и задача решаема. Вопрос только можно ли их купить? И даташит на них Micron выдаёт только с регистрацией.
Но скорей всего есть и другие чипы.

Либо то же самое - на RAM-чипах.

Добавлено через 2 минуты
Цитата Сообщение от a380 Посмотреть сообщение
3500 МБ/с для моделей с PCIe 3.0 до более 7000 МБ/с (и даже 14 800 МБ/с) для накопителей нового поколения с PCIe 5.0, что значительно быстрее, чем у SATA SSD (около 550 МБ/с).
Это всё - последовательный доступ. А ТС нужен - произвольный. Почувствуйте разницу! С произвольным доступом там будет во много-много раз медленнее.
Память нужно садить прямо на шину данных карты. Для макс. скорости. Без всяких NVMe и т.п.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 23:04
Цитата Сообщение от jcxz Посмотреть сообщение
Память нужно садить прямо на шину данных карты.
Вообще-то в сервисах сразу говорят, нельзя увеличить видеопамять простой пересадкой чипов памяти побольше и перепрошивкой. Нельзя. Там ограничение есть в самой карте.
Про какую шину речь ?
Терабайт из медленного флеша ? И какая разрядность ?
Цитата Сообщение от jcxz Посмотреть сообщение
Только описать технически задачу: Нужно читать столько-то и столько-то байт, за такое-то время.
Из базы 1 Терабайт. Это важно.
Цитата Сообщение от jcxz Посмотреть сообщение
Это всё - последовательный доступ. А ТС нужен - произвольный.
Сравнение идет от начала до конца последовательно, если я понял правильно. Точно также передвигаемся по базе, если я понял правильно.
Еще многое неизвестно. Например какие команды используются в гпу для вычисления.
Ладно. Чем дальше в лес, тем толще партизаны. Ну собсно, варианты обсудили, больше добавить нечего.
Тут копать надо глубоко, клещами вытаскивать инфо, это надолго. И наверное другой форум нужен.
0
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
01.09.2025, 23:36
Цитата Сообщение от a380 Посмотреть сообщение
Вообще-то в сервисах сразу говорят, нельзя увеличить видеопамять простой пересадкой чипов памяти побольше и перепрошивкой. Нельзя. Там ограничение есть в самой карте.
Какое ограничение? В чём?
Вы мнение ремонтников что-ль озвучиваете?

Цитата Сообщение от a380 Посмотреть сообщение
Про какую шину речь ?
Терабайт из медленного флеша ? И какая разрядность ?
Разрядность и скорость - зависит от конкретного чипа. Который выберет ТС. Я не знаю - какой он выберет. Но если ткнуть первый попавшийся, например MT29F2T08 от Micron, то краткий даташит MT29F2T08EMHAFJ43ITFA-datasheet.pdf обещает:
Memory Organization: 256G x 8bit при тактовой 333МГц. Т.е. - посадить 4шт. таких на шину в параллель и можно читать из них по 32 бита за каждые несколько тактов (в зависимости от схемы согласования и диаграммы цикла чтения микросхемы).
Это "медленно"??? Это будет на несколько порядков быстрее чем любое из того, что вы предложили на NVMe. Потому как без всяких прокладок - чтение будет идти напрямую из чипа, находящегося в адресном пространстве контроллера карты.

Кроме того - такое решение легко масштабируемо. Добавлением бОльшего числа чипов памяти. ТС вроде писал, что в будущем ему хочется ещё бОльший объём. А с увеличением объёма, время доступа к памяти не изменится.

Только тот даташит, что я выше привёл - это какой-то обрезок. Полный они дают только с регистрацией:
https://www.micron.com/search-... -tech-docs

Цитата Сообщение от a380 Посмотреть сообщение
Сравнение идет от начала до конца последовательно, если я понял правильно.
Опять 25... Вы совершенно не поняли что нужно ТС. Ему нужен произвольный доступ, а не последовательный.
Быстрый произвольный доступ с малым временем доступа - это только параллельная память.

Погуглите что такое произвольный доступ, а что такое - последовательный. В чём между ними различие.
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,
Сравнение идет от начала до конца последовательно
Нет, получив результат расчета мы знаем адрес проверочного байта в базе 1ТБ. Мы не читаем весь ТБ, мы берём адрес и читаем 1 байт.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
02.09.2025, 05:43
Цитата Сообщение от As17 Посмотреть сообщение
мы берём адрес и читаем 1 байт.
Не получится сюда ардуино прикрутить.
Выше было сказано про ускорение считывания с диска, за счет предсказания. Несколько версий.

Может статистику вести, какие блоки чаще читаются ? Типа в кеш положить и там их приколотить. Но это такое... что там измеряется ?
Может регулярность какая-то есть с погрешностью.
Вырожденные данные вычислить и их перепрыгивать.
Или блок расчета сократить, например в сортировке данных сначала блоки раскидываются по алфавиту, потом блоки сортируются каждый отдельно, это сильно ускоряет. Там и многопроцессорность хорошо работает.
Или критичные участки кода переписать на ассемблер, это может дать прирост скорости в 10-100 раз, проверено на практике. Но не всегда это работает, все по ситуации

Если просто про ускорение чтения с диска, то уже было сказано.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6813 / 2053 / 238
Регистрация: 14.12.2014
Сообщений: 4,314
Записей в блоге: 12
02.09.2025, 12:44
Цитата Сообщение от As17 Посмотреть сообщение
То что понял, в DirectX чтение идёт все равно через CPU и только декодирование ложится на видеокарту.
А как в GPUDirect Storage сделана реализация: также через CPU или есть своя фишка общения на прямую?
Я не работал с этим, но насколько понимаю, схема такая (в обоих случаях). Хост (CPU) инициализирует процесс чтения с диска, но не в общую память RAM, а в память GPU, минуя таким образом этап копирования из RAM в GPU.

Добавлено через 4 минуты
Т.е. всё как обычно, только читаем сразу в память GPU, а не в RAM.

Добавлено через 3 минуты
У вас как эти этапы вычислений и проверок вообще организованы? Каждый раз запускается функция ядра? Или всё делается в одном запуске?

И что касается скорости чтения. Если, например, тест (какого-нибудь CrystalDiskMark) 4KQ1T1 показывает 100 МБ/с (допустим), это значит, что у вас на одно рандомное чтение тратится 40 мкс.
0
357 / 119 / 7
Регистрация: 19.07.2024
Сообщений: 622
02.09.2025, 13:06
Цитата Сообщение от a380 Посмотреть сообщение
Так это флешка. Какое время доступа ? Частота тут не причем.
Советую скачать полный даташит, изучить его и не писать ерунду. Частота - причём. И даже если частота чтения ячеек флешь меньше частоты передачи по шине, то она всё равно будет как минимум около ~30МГц. Чего для задачи ТС вполне достаточно.

Цитата Сообщение от a380 Посмотреть сообщение
И у автора флешка NVMe, причем быстрая. И там не 8 бит. И произвольный доступ есть.
Произвольный побайтный доступ??? Уверены? Где про это почитать можно?
Или всё-таки - произвольный посекторный?

Добавлено через 5 минут
Цитата Сообщение от Jin X Посмотреть сообщение
И что касается скорости чтения. Если, например, тест (какого-нибудь CrystalDiskMark) 4KQ1T1 показывает 100 МБ/с (допустим), это значит, что у вас на одно рандомное чтение тратится 40 мкс.
А автору нужно ~0.17мкс. Т.е. - в ~240(!) раз быстрее. А значит - никакие SSD-диски тут однозначно - не вариант. Даже обсуждать нет смысла.
Только искать - как добавить необходимый объём параллельной памяти на шину контроллера карты.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
02.09.2025, 15:52
Цитата Сообщение от jcxz Посмотреть сообщение
Советую скачать полный даташит, изучить его
Дай ссылку, мне лень искать.
Цитата Сообщение от jcxz Посмотреть сообщение
посекторный?
Реально никогда по секторам не читается, всегда больше, такая особенность контроллера.
Цитата Сообщение от jcxz Посмотреть сообщение
Только искать - как добавить необходимый объём параллельной памяти на шину контроллера карты.
Бурная фантазия про 1ТБ. Или это можно купить ? ТЕРАБАЙТ !!!! Хочу ! Проводки паять надо ? И сколько это стоит в деньгах.

Добавлено через 6 минут
Цитата Сообщение от Jin X Посмотреть сообщение
40 мкс.
Это 25 Kilohertz.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6813 / 2053 / 238
Регистрация: 14.12.2014
Сообщений: 4,314
Записей в блоге: 12
02.09.2025, 16:17
Цитата Сообщение от jcxz Посмотреть сообщение
А автору нужно ~0.17мкс. Т.е. - в ~240(!) раз быстрее. А значит - никакие SSD-диски тут однозначно - не вариант. Даже обсуждать нет смысла.
Только искать - как добавить необходимый объём параллельной памяти на шину контроллера карты.
0.16-0.17 мкс — это 160-170 нс. У RAM latency меньше в несколько раз, даже не на порядок. Так что да, с NVMe это не проделать никак, можно даже не мечтать.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
02.09.2025, 16:27
Цитата Сообщение от Jin X Посмотреть сообщение
0.17 мкс
Это примерно 6 Megahertz
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6813 / 2053 / 238
Регистрация: 14.12.2014
Сообщений: 4,314
Записей в блоге: 12
02.09.2025, 16:37
Цитата Сообщение от a380 Посмотреть сообщение
Это примерно 6 Megahertz

Про 1 мкс можно тоже забыть.
Оперативная память — единственный вариант, который может требуемую пропускную способность.
Установить 1 ТБ оперативной памяти. Дорого, но реально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.09.2025, 16:37
Помогаю со студенческими работами здесь

Поддержка OpenCL AMD на видеокарте ATI Radeon HD 6370M
Здравствуйте! Многие наверное слышали о технологии OpenCL. Заинтересовался этим вопросом. Полазил...

Ищу драйвер видеокарты nvidia GT520m cuda 1Gb для ноутбука Acer Aspire 5750G под win XP.
Всем доброго времени суток, уважаемые форумчане. Вобщем поставил на данный ноут обычный сервис пак...

видеокарта openCL / cuda
Хочу научиться программировать с использованием gpu. Что по-вашему на данный момент и в будущем...

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

Как использовать GPU моей видеокарты для выполнения кода?
Конкретно, интересует выполнение встроенных в шарп алгоритмов шифрования.. Моя видеокарта - nVidia...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транскрипция 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 появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru