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

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

31.08.2025, 19:29. Показов 2187. Ответов 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
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
31.08.2025, 20:20
Для обращения к диску вам нужны драйверы (диска, файловой системы), без этого будет слишком много гемора.
Чтобы сэкономить время вы можете прочитать результаты из RAM напрямую.
А предзагрузить эти пару байт с самого начала, стало быть, с диска никак нельзя?
0
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
31.08.2025, 20:56  [ТС]
Jin X, предзагрузить никак - база на диске в 1ТБ и какие байты нужны известно в середине расчёта.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
31.08.2025, 22:18
Хорошо, а если в середине расчёта начать загружать данные, тогда к моменту, когда они будут нужны, они уже будут загружены.
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
Цитата Сообщение от As17 Посмотреть сообщение
наш расчет приближается к "истине"
Цитата Сообщение от As17 Посмотреть сообщение
Если приближается,
Здесь и начинать грузить в память часть данных из базы.
А грубое быстрое вычисление никак ? Чтобы горячие точки найти для сравнения с базой, и грузить заранее в память
0
 Аватар для andrey_f
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
01.09.2025, 13:31
GPU — это вычислительное устройство, а не устройство ввода-вывода.
Цитата Сообщение от Jin X Посмотреть сообщение
Хорошо, а если в середине расчёта начать загружать данные, тогда к моменту, когда они будут нужны, они уже будут загружены.
Начать загрузку данных в фоне, как только есть предположения о необходимости определенных данных, и держать их в RAM. Тогда при необходимости чтения из GPU данные уже будут в памяти. Но думаю, вы это и имели в виду.
Цитата Сообщение от As17 Посмотреть сообщение
Читал про GPUDirect Storage, но как понял, это тоже чтение с помощью процессора...
Что бы юзать GDS, опять же нужны драйвера, но GDS не реализует автономное чтение диска самой видеокартой. Видеокартам вообще не предназначена встроенная логика для обращения к блочным устройствам хранения данных, так как у них другое назначение.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
01.09.2025, 14:27
Цитата Сообщение от As17 Посмотреть сообщение
Jin X, мы считаем длинную формулу, получаем результат. Этому результату в базе есть соответствующий "проверочный" байт для оценки, наш расчет приближается к "истине" или ушёл от неё. Если приближается, мы рассчитываем уточняющие значение и его также проверяем по базе. Таких уточняющих значений 20 шт. и все они должны быть проверены и показать приближение к "истине".
То есть момент проверки совпадает с моментом, когда номер байта становится известен? И раньше определить этот номер нельзя даже примерно?
И каждый из 20 шагов зависит от результата предыдущего и распараллелить их тоже нельзя?

Ещё такая идея (мало ли, а вдруг). Каково содержимое базы этих проверочных байтов? Не получится ли её сжать раз в 100 или хотя бы в 10-20 (чтобы можно было разместить в оперативной памяти)?

Добавлено через 4 минуты
Ещё такой момент: какова вероятность, что придётся начинать сначала (т.е. проверочный байт не совпадёт с результатом вычислений)?
Может, есть смысл продолжить вычисления и делать проверку не сразу, а на следующем шаге (или через 1-2-3 шага)? Пока рассчитывается второй шаг, мы успеем загрузить нужный байт. После 2-го этапа мы получаем номер 2-го байта и будем иметь (успеем загрузить к тому моменту) первый байт. Если он совпадает, тогда продолжаем работу. Если нет, откатываемся назад. Да, будет много бессмысленных вычислений, но общее время работы сократится.

Добавлено через 4 минуты
Цитата Сообщение от andrey_f Посмотреть сообщение
Начать загрузку данных в фоне, как только есть предположения о необходимости определенных данных, и держать их в RAM. Тогда при необходимости чтения из GPU данные уже будут в памяти. Но думаю, вы это и имели в виду.
Да, начать загрузку в момент, когда известен номер байта (хотя бы примерно), а к моменту проверки байт уже будет загружен. Если, конечно, эти события не совпадают по времени.
0
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
01.09.2025, 14:41
Цитата Сообщение от Jin X Посмотреть сообщение
Для обращения к диску вам нужны драйверы (диска, файловой системы), без этого будет слишком много гемора.
Если заменить NVME, на обычный SATA, то с такого диска прочитать данные несложно. Даже простой программой на микроконтроллере. А чтобы не заморачиваться с ФС, можно на пустом диске с FAT32 создать один единый файл, в который и поместить все данные. Всю базу поместить в него. Файл - без фрагментации, а значит - достаточно только определить номер сектора диска, с которого начинается файл и дальше легко вычислить целевой сектор диска для каждого байта файла. И прочитать нужный сектор/секторы несколькими командами через SATA.
Определить начало файла (стартовый кластер/сектор), расположенного в корне диска на FAT32 - несложно.

Делал такое когда-то на IDE HDD (читал секторы с диска микроконтроллером). Программа там простая.

Добавлено через 11 минут
Цитата Сообщение от As17 Посмотреть сообщение
Если ушёл - делаем шаг в исходных данных и начинаем всё сначала.
И всё хорошо до тех пор пока мы не сравниваем с "проверочный" байтом из базы полученное значение - его передаём в процессор, проц. его сравнивает с базой и результат отправляет назад.
Если исключить проверку то скорость вырастает раз в 60. Вот и возникла мысль оптимизации - на прямую , из GPU проводить сравнение.
Имхо: узкое место у вас - это весь такой процесс сравнения. Думаю - не поможет тут чтение диска видеокартой. Уже не говоря о том, что потребуется думать и разделении доступа к одному ресурсу (диску) двух разных мастеров: CPU и видеокарты.
Лучше смотреть в сторону - как в адресное пространство видеокарты поместить какую-то память большого объёма. ОЗУ или FLASH. И обращаться к её адресам напрямую. Тогда будет минимум операций. Для чтения с диска даже пары байт нужно прочитать с него как минимум один сектор (это или 512 байт или даже несколько КБ), а для чтения из памяти, находящейся в адресом пространстве, ничего лишнего читать не нужно.
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 16:18
Цитата Сообщение от Jin X Посмотреть сообщение
Не получится ли её сжать раз в 100 или хотя бы в 10-20
Плохая мысль, много времени на разжатие уйдет.
Текст сжимается в 2-10, бинарный 1.5-2 раза.

Цитата Сообщение от jcxz Посмотреть сообщение
И прочитать нужный сектор/секторы
Это как раз долгая операция. Так что нужно начинать читать заранее с диска.
Цитата Сообщение от jcxz Посмотреть сообщение
заменить NVME, на обычный SATA
Это еще медленнее.
0
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
01.09.2025, 17:58
Цитата Сообщение от a380 Посмотреть сообщение
Так что нужно начинать читать заранее с диска.
Каким образом?
Прочитайте внимательнее условия задачи. Исходя из них: заранее предсказать откуда читать - невозможно.
Потому как если бы это было возможно, то и проверять ничего не надо было бы.

Если заранее знаем откуда читать, то значит заранее знаем результат, а значит - если он неуспешный, то и считать эту ветку не надо. Но раз ТС хочет её считать, а только потом проверять - значит предсказать результат невозможно.

Элементарная логика.

Добавлено через 1 минуту
Цитата Сообщение от a380 Посмотреть сообщение
Это еще медленнее.
Быстрый вариант я уже привёл: Сохранить весь файл базы данных в память, которую можно отобразить в адресное пространство видеокарты.
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 18:10
Цитата Сообщение от jcxz Посмотреть сообщение
значит предсказать результат невозможно.
Цитата Сообщение от As17 Посмотреть сообщение
наш расчет приближается к "истине" или ушёл от неё. Если приближается,
Это и есть предсказание.

Цитата Сообщение от jcxz Посмотреть сообщение
Сохранить весь файл базы данных в память,
Цитата Сообщение от As17 Посмотреть сообщение
база в 1ТераБайт
Значит и память в 1ТераБайт
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
01.09.2025, 18:44
Так. Про драйверы я, пожалуй, погорячился (был юн и глуп)
Я спросил у ясеня ChatGPT, он написал, что работа с GDS идёт с хоста с использованием драйвера ОС, никаких драйверов ФС и тем более NVMe писать не нужно. GDS позволяет читать файл сразу в память GPU без лишнего копирования из обычной RAM.
Код для Linux примерно такой (в Windows CDS вообще не поддерживается). Я его не проверял. Но он, во всяком случае, компилится (с опцией -lcufile). Вместе с тем, эту штуку можно комбинировать вместе с моей предыдущей идеей по отсрочке проверки.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <cuda_runtime.h>
#include <cufile.h>
#include <fcntl.h>
#include <unistd.h>
#include <cstring>
 
int main() {
    constexpr size_t SIZE = 4096; // 4 KB
 
    // 1. Инициализация GPUDirect Storage
    if (auto status = cuFileDriverOpen(); status.err != CU_FILE_SUCCESS) {
        std::cerr << "cuFileDriverOpen failed: " 
                  << status.err << std::endl;
        return 1;
    }
 
    // 2. Открываем файл (можно /dev/nvme0n1 для raw чтения)
    const char* filename = "/mnt/ssd/test.bin";
    int fd = open(filename, O_RDONLY | O_DIRECT);
    if (fd < 0) {
        perror("open");
        return 1;
    }
 
    // 3. Регистрируем дескриптор файла в cuFile
    CUfileDescr_t desc{};
    desc.handle.fd = fd;
    desc.type = CU_FILE_HANDLE_TYPE_OPAQUE_FD;
 
    CUfileHandle_t cfHandle;
    if (auto status = cuFileHandleRegister(&cfHandle, &desc); status.err != CU_FILE_SUCCESS) {
        std::cerr << "cuFileHandleRegister failed: " 
                  << status.err << std::endl;
        close(fd);
        return 1;
    }
 
    // 4. Выделяем память на GPU
    void* d_buf = nullptr;
    if (cudaMalloc(&d_buf, SIZE) != cudaSuccess) {
        std::cerr << "cudaMalloc failed" << std::endl;
        cuFileHandleDeregister(cfHandle);
        close(fd);
        return 1;
    }
 
    // Регистрируем GPU-буфер для GDS
    if (auto status = cuFileBufRegister(d_buf, SIZE, 0); status.err != CU_FILE_SUCCESS) {
        std::cerr << "cuFileBufRegister failed: " 
                  << status.err << std::endl;
        cudaFree(d_buf);
        cuFileHandleDeregister(cfHandle);
        close(fd);
        return 1;
    }
 
    // 5. Читаем файл в GPU память
    ssize_t ret = cuFileRead(cfHandle, d_buf, SIZE, 0, 0);
    if (ret < 0) {
        std::cerr << "cuFileRead failed" << std::endl;
    } else {
        std::cout << "Прочитано " << ret << " байт напрямую в GPU память" << std::endl;
    }
 
    // 6. Очистка
    cuFileBufDeregister(d_buf);
    cudaFree(d_buf);
    cuFileHandleDeregister(cfHandle);
    close(fd);
    cuFileDriverClose();
 
    return 0;
}
Пояснения:
1. O_DIRECT нужен, чтобы обойти кэш ядра, иначе DMA напрямую не пойдёт.
2. GPU-память регистрируется через cuFileBufRegister, иначе NVMe контроллер не может писать в VRAM.
3. Смещение (0 в примере) и размер должны быть кратно 4 KB.
4. Если хотите читать несколько секторов или большой файл, просто делайте цикл по смещениям и регистрируйте буфер нужного размера.
5. Файл можно заменить на raw NVMe (/dev/nvme0n1) — тогда вы получаете доступ к сектору напрямую.

При инсталляции CUDA Toolkit нужно обязательно активировать установку nvidia-fs (без него работать не будет).

Цитата Сообщение от a380 Посмотреть сообщение
Плохая мысль, много времени на разжатие уйдет.
Смотря как сжимать/разжимать. Можно небольшими блоками и алгоритмом с быстрой распаковкой.
Цитата Сообщение от a380 Посмотреть сообщение
Текст сжимается в 2-10, бинарный 1.5-2 раза.
Что за стереотип? Это же не исполняемый код, а данные, которые могут вообще не сжиматься (условно рандом), а могут сжиматься в сотни-тысячи раз.

Добавлено через 4 минуты
Цитата Сообщение от Jin X Посмотреть сообщение
При инсталляции CUDA Toolkit нужно обязательно активировать установку nvidia-fs (без него работать не будет).
sudo apt install nvidia-fs
1
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
01.09.2025, 18:51  [ТС]
Цитата Сообщение от jcxz Посмотреть сообщение
заранее предсказать откуда читать - невозможно.
Потому как если бы это было возможно, то и проверять ничего не надо было бы.
Да, именно так. Собственно сам расчет и есть "приближенное" вычисление и при попадании в базу мы производим ещё 20 уточняющих вычислений-сравнений.

Цитата Сообщение от jcxz Посмотреть сообщение
Быстрый вариант я уже привёл: Сохранить весь файл базы данных в память, которую можно отобразить в адресное пространство видеокарты.
Тут следует отметить, что оптимизация шла как по пути распараллеливания вычислений (тут GPU в 30 раз обошел CPU), так и по пути оптимизации базы и чем больше база тем "длиннее" шаг мы можем сделать между точками расчёта (т.е. если базу урезать до 10 ГБ, что есть на видеокарте, то количество шагов увеличится в 100 раз по сравнению с базой в 1ТБ.) Сейчас уже базу можно увеличить до 2ТБ. На лицо потеря скорости при переходе на короткую базу.
Нужно будет померять скорость GPU при размещении базы в памяти видеокарты...
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 19:06
Цитата Сообщение от Jin X Посмотреть сообщение
Можно небольшими блоками и алгоритмом с быстрой распаковкой
Сжатие будет слабое, 10% например. И еще время на распаковку, за несколько тактов это не делается.
Цитата Сообщение от Jin X Посмотреть сообщение
данные, которые могут вообще не сжиматься (условно рандом)
Сжимаются любые. Если оперировать битами в байтах перед записью в базу, тогда не сжимаются вообще.
Цитата Сообщение от Jin X Посмотреть сообщение
могут сжиматься в сотни-тысячи раз.
Это повторение нулей например, в сотни может быть. В тысячи надо специально кодить, а это увеличение архива, никто так не делает.

В ГПУ мало команд, это не полноценный проц. В основном математика.

Добавлено через 9 минут
Цитата Сообщение от As17 Посмотреть сообщение
скорость GPU при размещении базы в памяти видеокарты
Конечно быстрее будет, нет потерь времени при пересылке из памяти в видеопамять. Сложно сказать сколько, ориентировочно в 10 раз навскидку.

Добавлено через 4 минуты
В играх все грузится в видеопамять, поэтому так быстро все крутится. Из памяти только подгружается иногда текстуры, но надо размерность соблюдать, чтобы при замене не перекрыть соседнюю область.
0
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
01.09.2025, 19:24  [ТС]
Цитата Сообщение от jcxz
Не получится ли её сжать раз в 100 или хотя бы в 10-20.
Уже оптимизировали. Не получится, там не связанные друг с другом байты без повторов.

какова вероятность, что придётся начинать сначала (т.е. проверочный байт не совпадёт с результатом вычислений)?
Примерно 30% при каждом сравнении, что мы движемся к "истине". Соответственно, 70% что придется сделать шаг в исходных данных и начать сначала.

Может, есть смысл продолжить вычисления и делать проверку не сразу, а на следующем шаге (или через 1-2-3 шага)? Пока рассчитывается второй шаг, мы успеем загрузить нужный байт.
Если у нас не получится читать базу из видеокарты, то резервная модель примерно так и выглядит:
Видеокарта считает массив в 2ГБ и отдает его на проверку CPU. CPU сверяется с базой и возвращает массив попаданий в базу...
В этой реализации тоже есть свои вопросы...

Добавлено через 13 минут
Код для Linux примерно такой (в Windows CDS вообще не поддерживается).
Тут похоже не полные данные:
"Ясень" мне напел -
DirectStorage – это API для Windows (Win32 API), который позволяет языкам, таким как C и C++, напрямую использовать высокоскоростные SSD-накопители (NVMe) для ускорения передачи данных в GPU, УМЕНЬШАЯ нагрузку на центральный процессор и ускоряя загрузку игровых ресурсов. Использование API включает создание очередей для отправки запросов на загрузку данных, а также обработку результатов и данных распаковки на GPU, что повышает общую производительность игр на современных системах.
Как работает DirectStorage
Использование высокоскоростных накопителей:
DirectStorage позволяет играм получать доступ к данным напрямую с SSD-накопителей NVMe, обходя узкие места традиционных протоколов передачи данных.
Освобождение ЦП:
API перемещает часть работы по распаковке данных с центрального процессора на GPU, что снижает нагрузку на ЦП и позволяет ему выполнять другие задачи.
А тут более достоверный источник - https://learn.microsoft.com/ru... age-portal

А тут наиболее полная информация, что мне удалось найти - 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,
Что насчет грубого подсчета ? Быстро пометить, потом считать подробно и подгружать заранее блоки базы.
Так первое вычисление оно же и есть грубое или примерное (это 1/20 от полного вычисления).
0
325 / 84 / 5
Регистрация: 19.07.2024
Сообщений: 464
01.09.2025, 20:37
Цитата Сообщение от As17 Посмотреть сообщение
Тут следует отметить, что оптимизация шла как по пути распараллеливания вычислений (тут GPU в 30 раз обошел CPU), так и по пути оптимизации базы и чем больше база тем "длиннее" шаг мы можем сделать между точками расчёта (т.е. если базу урезать до 10 ГБ, что есть на видеокарте, то количество шагов увеличится в 100 раз по сравнению с базой в 1ТБ.) Сейчас уже базу можно увеличить до 2ТБ. На лицо потеря скорости при переходе на короткую базу.
Я вроде и не предлагал урезать базу. Нужно 1TB - так и подключайте 1TB в адресное пространство видеокарты.

Цитата Сообщение от As17 Посмотреть сообщение
Сообщение от jcxz
Не получится ли её сжать раз в 100 или хотя бы в 10-20.
Уже оптимизировали. Не получится, там не связанные друг с другом байты без повторов.
Аккуратней с цитированиями! Я такого не писал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2025, 20:37
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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