Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн фев 16, 2026 17:51

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Подключение GPU к Irbis
Автор Сообщение
  Заголовок сообщения:  Re: Подключение GPU к Irbis  Ответить с цитатой
Итоговая производительность.... за пределами ожиданий. С учетом того, что в GPU передан расчет трансцендентных функций, обработать в сумме 100М точек за 1,2 секунды для CPU нереально. Принципиальный вопрос, конечно, в том, что на GPU такое могло и не лечь... но оно легло!


Вложения:
Irbis_CUDA01.png
Irbis_CUDA01.png [ 22.8 Кб | Просмотров: 401 ]
Сообщение Добавлено: Пт дек 12, 2025 20:44
  Заголовок сообщения:  Re: Подключение GPU к Irbis  Ответить с цитатой
Итак, если функция в CUDA SDK вот такая:
Код:
//MacVectorsCuda(const double* data, unsigned long long int datasize, const double* wav, unsigned long long int num_threads, double* w )

.. то на Ирбисе она вызывается вот так.

Код:
x[] data[]+ wavsize
wav[] data[]+ GPU_threads
wav_res[] data[]+
hWav invokelong5 


data[]+ нужно, чтобы сделать поправку на расположение в памяти области данных форт-машины. Ее ноль - это в действительности какое-то смещение в памяти данных процесса.

Но быстро работает...
Сообщение Добавлено: Пн ноя 17, 2025 22:54
  Заголовок сообщения:  Подключение GPU к Irbis  Ответить с цитатой
Сразу можно отметить, что никакого программирования GPU непосредственно на Форте и не предполагалось. Обычный CUDA SDK, но при этом функции компилируются в dll, экспортируются (как stdcall), что дает возможность подключить это все к Irbis. Пришлось еще добавить long long int, чтобы состыковать все с 64-битной форт-машиной (и абсолютные адреса уже за границей 32 бит). Зато теперь можно аккуратно передавать все в GPU.

Подключается примерно так:

Код:
int hCuda
int hAdd
int hInfo

"CUDADllStat.dll" loadlibrary to hCuda
hCuda "addVectorsCuda" getprocaddress to hAdd
hCuda "InfoCuda" getprocaddress to hInfo

// addVectorsCuda(long long int* c, const long long int* a, const long long int* b, unsigned long long int size)

"Dll address " print hCuda . cr
"Function add " print hAdd . cr
"Function info " print hInfo . cr

hInfo invoke . cr

create a[] 1 , 2 , 3 , 4 , 5 ,
create b[] 2 , 4 , 6 , 8 , 10 ,
create c[] 5 cells allot

"Running vectors addition on GPU..." print cr

c[] data[]+ a[] data[]+ b[] data[]+ 5 hAdd invokelong4


С выводом:

Код:
Dll address 140714923982848
Function add 140714924032128
Function info 140714924032112
55
Running vectors addition on GPU...
3
6
9
12
15
Сообщение Добавлено: Вс ноя 09, 2025 21:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB