|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|
Чтение данных видеокартой с диска nvme ssd31.08.2025, 19:29. Показов 2187. Ответов 59
Метки нет (Все метки)
Здравствуйте.
Есть математика, которая успешно считается на видеокарте, но для дальнейшего хода расчетов необходимо получить пару байт с диска. Сейчас есть убогая реализация через процессор, которая серьезно тормозит скорость расчета. Есть ли возможность видеокарте самой читать данные с nvme ssd? Читал про GPUDirect Storage, но как понял, это тоже чтение с помощью процессора...
0
|
|
| 31.08.2025, 19:29 | |
|
Ответы с готовыми решениями:
59
CUDA k-means ошибка чтения Маленький супер-компьютер для вычислений с помощью видеокарт NVIDIA с применением технологии CUDA. #Вычисления на GPU (GPGPU - вычислений на видеокартах): CUDA, OpenCL, AMD APP и DirectCompute |
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 31.08.2025, 20:20 | |
|
Для обращения к диску вам нужны драйверы (диска, файловой системы), без этого будет слишком много гемора.
Чтобы сэкономить время вы можете прочитать результаты из RAM напрямую. А предзагрузить эти пару байт с самого начала, стало быть, с диска никак нельзя?
0
|
|
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|
| 31.08.2025, 20:56 [ТС] | |
|
Jin X, предзагрузить никак - база на диске в 1ТБ и какие байты нужны известно в середине расчёта.
0
|
|
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 31.08.2025, 23:15 | |
|
Предсказание придумать, что примерно впереди ожидается через много тактов и заранее начинать грузить в память.
Можно несколько кусков заранее загрузить по 1 ГБ например, есть шанс попасть в них, вероятность 50% уже хорошая. Без проца никак и заодно пусть он считает вероятность.
0
|
|
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|
| 31.08.2025, 23:35 [ТС] | |
|
Jin X, мы считаем длинную формулу, получаем результат. Этому результату в базе есть соответствующий "проверочный" байт для оценки, наш расчет приближается к "истине" или ушёл от неё. Если приближается, мы рассчитываем уточняющие значение и его также проверяем по базе. Таких уточняющих значений 20 шт. и все они должны быть проверены и показать приближение к "истине".
Если ушёл - делаем шаг в исходных данных и начинаем всё сначала. И всё хорошо до тех пор пока мы не сравниваем с "проверочный" байтом из базы полученное значение - его передаём в процессор, проц. его сравнивает с базой и результат отправляет назад. Если исключить проверку то скорость вырастает раз в 60. Вот и возникла мысль оптимизации - на прямую , из GPU проводить сравнение. Но не найду информации можно или нельзя такое реализовать. Возможно умные головы уже решили этот вопрос... Добавлено через 3 минуты a380, база в 1ТераБайт. 1ГБ очень маленькая вероятность 0,1%.
0
|
|
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|||
| 31.08.2025, 23:43 | |||
|
А грубое быстрое вычисление никак ? Чтобы горячие точки найти для сравнения с базой, и грузить заранее в память
0
|
|||
|
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
|
|||
| 01.09.2025, 13:31 | |||
|
GPU — это вычислительное устройство, а не устройство ввода-вывода.
0
|
|||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||
| 01.09.2025, 14:27 | |||
|
И каждый из 20 шагов зависит от результата предыдущего и распараллелить их тоже нельзя? Ещё такая идея (мало ли, а вдруг). Каково содержимое базы этих проверочных байтов? Не получится ли её сжать раз в 100 или хотя бы в 10-20 (чтобы можно было разместить в оперативной памяти)? ![]() Добавлено через 4 минуты Ещё такой момент: какова вероятность, что придётся начинать сначала (т.е. проверочный байт не совпадёт с результатом вычислений)? Может, есть смысл продолжить вычисления и делать проверку не сразу, а на следующем шаге (или через 1-2-3 шага)? Пока рассчитывается второй шаг, мы успеем загрузить нужный байт. После 2-го этапа мы получаем номер 2-го байта и будем иметь (успеем загрузить к тому моменту) первый байт. Если он совпадает, тогда продолжаем работу. Если нет, откатываемся назад. Да, будет много бессмысленных вычислений, но общее время работы сократится. Добавлено через 4 минуты
0
|
|||
|
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
|
|||
| 01.09.2025, 14:41 | |||
|
Определить начало файла (стартовый кластер/сектор), расположенного в корне диска на FAT32 - несложно. Делал такое когда-то на IDE HDD (читал секторы с диска микроконтроллером). Программа там простая. Добавлено через 11 минут Лучше смотреть в сторону - как в адресное пространство видеокарты поместить какую-то память большого объёма. ОЗУ или FLASH. И обращаться к её адресам напрямую. Тогда будет минимум операций. Для чтения с диска даже пары байт нужно прочитать с него как минимум один сектор (это или 512 байт или даже несколько КБ), а для чтения из памяти, находящейся в адресом пространстве, ничего лишнего читать не нужно.
0
|
|||
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
||||
| 01.09.2025, 16:18 | ||||
|
Текст сжимается в 2-10, бинарный 1.5-2 раза.
0
|
||||
|
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
|
|||
| 01.09.2025, 17:58 | |||
|
Прочитайте внимательнее условия задачи. Исходя из них: заранее предсказать откуда читать - невозможно. Потому как если бы это было возможно, то и проверять ничего не надо было бы. Если заранее знаем откуда читать, то значит заранее знаем результат, а значит - если он неуспешный, то и считать эту ветку не надо. Но раз ТС хочет её считать, а только потом проверять - значит предсказать результат невозможно. Элементарная логика. Добавлено через 1 минуту
0
|
|||
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|||||
| 01.09.2025, 18:10 | |||||
|
0
|
|||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||||||||
| 01.09.2025, 18:44 | |||||||||
|
Так. Про драйверы я, пожалуй, погорячился (был юн и глуп)
![]() Я спросил у Код для Linux примерно такой (в Windows CDS вообще не поддерживается). Я его не проверял. Но он, во всяком случае, компилится (с опцией -lcufile). Вместе с тем, эту штуку можно комбинировать вместе с моей предыдущей идеей по отсрочке проверки. Кликните здесь для просмотра всего текста
1. O_DIRECT нужен, чтобы обойти кэш ядра, иначе DMA напрямую не пойдёт. 2. GPU-память регистрируется через cuFileBufRegister, иначе NVMe контроллер не может писать в VRAM. 3. Смещение (0 в примере) и размер должны быть кратно 4 KB. 4. Если хотите читать несколько секторов или большой файл, просто делайте цикл по смещениям и регистрируйте буфер нужного размера. 5. Файл можно заменить на raw NVMe (/dev/nvme0n1) — тогда вы получаете доступ к сектору напрямую. При инсталляции CUDA Toolkit нужно обязательно активировать установку nvidia-fs (без него работать не будет). Добавлено через 4 минуты sudo apt install nvidia-fs
1
|
|||||||||
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
|||
| 01.09.2025, 18:51 [ТС] | |||
|
Нужно будет померять скорость GPU при размещении базы в памяти видеокарты...
0
|
|||
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|||||
| 01.09.2025, 19:06 | |||||
|
В ГПУ мало команд, это не полноценный проц. В основном математика. Добавлено через 9 минут Добавлено через 4 минуты В играх все грузится в видеопамять, поэтому так быстро все крутится. Из памяти только подгружается иногда текстуры, но надо размерность соблюдать, чтобы при замене не перекрыть соседнюю область.
0
|
|||||
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||||||
| 01.09.2025, 19:24 [ТС] | ||||||
Видеокарта считает массив в 2ГБ и отдает его на проверку CPU. CPU сверяется с базой и возвращает массив попаданий в базу... В этой реализации тоже есть свои вопросы... Добавлено через 13 минут
"Ясень" мне напел -
А тут наиболее полная информация, что мне удалось найти - https://github.com/microsoft/D... uidance.md
0
|
||||||
|
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
|
|
| 01.09.2025, 19:47 | |
|
Похоже сильно ускорить не получится. Надо память увеличивать.
Еще есть вариант кластер на локальную сеть перенести с кучей компов, пусть каждый комп свой блок считает, тут в скорость локалки все упирается. Но это надо менегер писать, чтобы раскидывал и собирал результы. И базу раскидать тоже, каждому свое. Добавлено через 7 минут Что насчет грубого подсчета ? Быстро пометить, потом считать подробно и подгружать заранее блоки базы.
0
|
|
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||
| 01.09.2025, 20:36 [ТС] | ||
|
a380,
0
|
||
|
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
|
|||
| 01.09.2025, 20:37 | |||
|
0
|
|||
| 01.09.2025, 20:37 | |
|
Помогаю со студенческими работами здесь
20
Поддержка OpenCL AMD на видеокарте ATI Radeon HD 6370M Ищу драйвер видеокарты nvidia GT520m cuda 1Gb для ноутбука Acer Aspire 5750G под win XP. видеокарта openCL / cuda Видеокарта не поддерживает OpenCL что делать? Как использовать GPU моей видеокарты для выполнения кода? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|