Комментарии 17
А нельзя все узлы скопировать из __global в __local и там делать кучу итераций, или не влазит?
Я наивно надеялся, что видеокарта будет использовать локальную память как кэш, и после первого прохода скопирует данные в неё.
Если скопировать данные в __local вручную, то это действительно ускоряет работу одиночной задачи в два раза. Но для множества задач это требует написания кода распределяющего память между задачами, и учитывающего размеры памятей используемых устройств. Неоправданное усложнение и кросплатформенность теряется.
Интересно, спасибо.
Как это понимать?
Как иллюстрацию сравнительной сложности вычислений.
С физической точки зрения:
если подать фиксированное напряжение, то можно увидеть, что индуктивность пропорциональна "медленности" нарастания тока;
если подать фиксированный ток, то можно увидеть, что ёмкость пропорциональна "медленности" нарастания напряжения.
где "медленность" - величина обратная скорости.
С практической - просто вывернул уравнения ёмкости и индуктивности в нестандартный вид, чтобы на картинке лучше смотрелись.
Да, но вы же понимаете, что с физической точки зрения запись абсолютно некорректна. Даже если бы вы хотели просто «перевернуть» производную.
Нет, не понимаю.
Допустим, у нас есть индуктивность неизвестного номинала и источник известного напряжения. Мы подключаем одно к другому и всё вместе к осциллографу. Получаем зависимость тока от времени.
Как, на Ваш взгляд, можно определить номинал индуктивности?
Как коэффициент пропорциональности между током и магнитным потоком, каковым он всегда и был в этом контексте.
а зачем монструозная функция деления комплексных чисел? не проще ли через домножение на комплексно сопряженное b в пару строк все записать:
float div = b.x*b.x+b.y*b.y;
return (float2)((a.x*b.x+a.y*b.y)/div,(-a.x*b.y+a.y*b.x)/div);
Разница не очень большая. Приведённый алгоритм имеет пояснение:
"The following algorithm is used to properly handle denominator overflow"
Скорее всего Вы правы. Деление в алгоритме только одно и можно заранее выяснить будет переполнение или нет.
Упрощённая версия не имеет условного перехода и должна лучше ложиться на SIMT инструкции, которыми страдает видеокарта.
Позднее я попробую это проверить.
Цель - посчитать уставки в полностью автоматическом режиме:
показал схему --> забрал карту уставок.
Берете и применяете.
Не. В реальности это выглядит как то так:
платите, платите за совместимое оборудование и ПО, берёте, решаете проблемы с DRM, заводите и поддерживаете реестр лицензий, пытаетесь применить, доплачиваете за опции и применяете.
Это проверка концепции и самообразовательный проект. Ну, и немного опенсурса пора принести в эту область, засиженную коммерческими лицензиями.
У вас расчет запустится на линуксе, так ведь?
Я посмотрел ценник на облачные вычисления, 0.0168 доллара за машино-час на 2 виртуальных ядра (шесть ваших физических ядер работают как 12 виртуальных), частота 2.5GHz.
Весь расчет в течение 14 часов на 6 ядрах стоит 0.0168х14х6х(3/2.5)=3,38 доллара, это чуть менее 240р.
В облаке можно поднять любое количество машин, просто старт-стоп тоже придется оплачивать и запускать расчет на одну минуту может оказаться неоптимально по деньгам.
Я не знаю, насколько для вас приемлемо заплатить 300р. за выполнение расчета за 10 минут вместо 14 часов, но как вариант - рассмотрите.
Если что, пишите в личку, помогу советом.
GeForce GTX 1650 осиливает задачу, за 1,3 часа. Так что, пока смысла переходить в облака нет.
Но для общего развития хотелось бы спросить:
Сталкивались ли с облачными видеокартами?
Есть провайдеры, которые позволяют установить в виртуалку любой компилятор (Free Pascal например) и запускать собранное им?. Когда я интересовался в последний раз этой темой предлагался фиксированный набор ПО.
Описанная программа в основном под линукс и собирается.
Это специфическое направление, я не работал с GPU в облаке. Знаю что сейчас все ведущие провайдеры предлагают инстансы с GPU: AWS, GCP, Azure, Яндекс.
Я не сталкивался с ограничениями на установку опенсорс-софта на инстансы. Набиваете шаблон и стартуете когда вам нужно и сколько вам нужно.
Лет десять назад приходилось видеть подход "вот разрешенные загрузочные образы, если вам чего-то не хватает - звоните", но сейчас этого нет.
судя по поисковой выдаче, Free Pascal доступен даже как serverless на AWS. Вряд ли он будет подключен к GPU, но это может сгодиться.
Как заменить себя скриптом. Часть 1. Режимы коротких замыканий в электросети с применением OpenCL