3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
||||||
Как переложить задачу на GPU?15.10.2023, 06:56. Показов 1414. Ответов 13
Метки нет Все метки)
(
Здравствуйте, много слышал о работе с GPU. О том, что GPU используется в задачах по вычислению и бруту кричит весь интернет, приводя примеры начиная от майнинга и заканчивая сложением матриц.
Но КАК работать с GPU, как к нему обратиться-то? к примеру, переложить на GPU-шные плечи следующий код:
0
|
15.10.2023, 06:56 | |
Ответы с готовыми решениями:
13
Как переложить на T-SQL запрос из 1C? Как вычисления переложить на другой компьютер? Разрастающиеся графы. Как все кубики переложить по цветам? |
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|
15.10.2023, 11:18 [ТС] | |
VTsaregorodtsev, размер массивов тут, конечно.....большой...не спорю....
Но допустим, у нас в какой-то игре (типа "герои 3") warcraft и т.п. Там есть карта....немаленькая скажу я Вам, (ни один экран) Так вот при скроллинге она перерисовывет все точки экрана, причем так быстро, что саму перерисоаку пользователь не замечает. (это я к тому, что обработать большущее кол-во информации за короткий промежуток времени возможно) Знать бы как...
0
|
![]() |
|
15.10.2023, 15:00 | |
GPU не может выполнять код Intel x86/x64.
0
|
1673 / 1569 / 261
Регистрация: 19.02.2010
Сообщений: 4,178
|
||
15.10.2023, 15:41 | ||
Как 1: надо использовать SIMD-команды процессора. Или написанием кода ручками на ассемблере - или применением векторизующего компилятора (т.е. если Pure Basic сам в векторизацию не умеет - то ой). Как 2: надо уделять внимание организации данных в памяти. Например, первый строенный цикл в коде (там, где максимумы-минимумы вычисляются) можно переписать в виде одиночного цикла с числом итераций Height*Width*8 - т.е. для доступа к элементу массива не потребуется вычислять его адрес с использованием аж трёх прежних переменных (плюс ещё указатель на начало массива). Но это в случае, если выделение памяти для многомерного массива происходит без вставки каких-либо невидимых элементов для "выравнивания" длин блоков данных (иначе вместо трёхмерного массива надо будет сделать одномерный массив).
0
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|||||||||
15.10.2023, 17:47 [ТС] | |||||||||
Вот чуток более оптимизированная версия того же кода (пока еще с той же мерностью массивов)
Еще бы придумать как сделать так, чтобы перебирались не все группы чисел a(x,y,n) и b(x,y,n) на которые depth_a и depth_b как-то влияют.... А то ведь сколько не сравнивай группу чисел, допустим A : 150, 299, 50, 100,150,200,300,500 c depth_a в интервале от 50-99, а результат будет одни: 1, 1, 0, 1,1,1,1,1. (лишние итерации) только вот я пока не придумал как правильно это сделать.) Добавлено через 2 минуты locm, Может я путаю горячее, с плоским, но как же тогда работают программы-майнеры, использующие видеокарту под 32-битным windows?
0
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|||||||||||
16.10.2023, 10:34 [ТС] | |||||||||||
VTsaregorodtsev, Начал переписывать алгоритм на основе одномерных массивов и сражу же столкнулся с загадкой....
Если написать :
Если же написать:
В чем разница-то? Тип массивов одинаковый, у второй пары даже размер чуть побольше, но в первом случае ошибка есть, а во втором нет. Почему?
0
|
1673 / 1569 / 261
Регистрация: 19.02.2010
Сообщений: 4,178
|
|
16.10.2023, 10:46 | |
nigri_lupus, я бейсиком не пользовался уже 30+ лет
![]() А Pure Basic я вообще никогда не видел. Т.е. в тему я зашёл просто посмотреть "кто виноват (задача / алгоритм / транслятор / процессор) и что делать" - и оценить расхождение своего мнения с мнениями других.
0
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
||
16.10.2023, 11:18 [ТС] | ||
![]() Но вот КАК Warcraft 2 это делал? Через обычный cpu или использовал встроенный в материнку граф. процессор - я не знаю...
0
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
||||||
16.10.2023, 12:20 [ТС] | ||||||
VTsaregorodtsev, тики переписал код в виде одномерных массивов:
0
|
Кормпилятор
![]() |
||
09.11.2023, 19:09 | ||
Под Windows скорее всего первые версии DirectDraw, которые в те времена были очень быстрые. Плюсом идёт максимальная оптимизация программ тех лет. Проги середины нулевых уже писали на порядок хуже. Как правильно упомянул locm, GPU не может выполнить x86\x64 код, там используется сильное распараллеливание на сотни и тысячи ядер, не каждый алгоритм можно этому подвергнуть, т.е. это технологии OpenCL или CUDA. Примеры с OpenCL скорее всего можно найти на пурике, насчёт CUDA - предположу, что нет, т.к. это прерогатива плюсов и тамошнего SDK.
0
|
09.11.2023, 19:09 | |
Помогаю со студенческими работами здесь
14
Как быстро переложить ASP.NET проект вместе с code-behind файлами? "Не удаётся создать новую копию защиты для стека" или как переложить данные в кучу Как запустить один compute shader на одной GPU, а второй compute shader на второй GPU через один и тот же скрипт Unity? Переложить функцию в таймер Переложить с ereg_replace в preg_replace Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
|
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C#
Задание 1:
КЛАСС FORM 1
public partial class Form1 : Form
{
Spisok listin = new Spisok();
. . .
|
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
|
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
|
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
|
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
|
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
|
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг.
Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя.
Странные серые краски проникают и. . .
|