Как стать автором
Обновить

Комментарии 17

Можно глупый вопрос?
А нельзя все узлы скопировать из __global в __local и там делать кучу итераций, или не влазит?

Я наивно надеялся, что видеокарта будет использовать локальную память как кэш, и после первого прохода скопирует данные в неё.

Если скопировать данные в __local вручную, то это действительно ускоряет работу одиночной задачи в два раза. Но для множества задач это требует написания кода распределяющего память между задачами, и учитывающего размеры памятей используемых устройств. Неоправданное усложнение и кросплатформенность теряется.

Как иллюстрацию сравнительной сложности вычислений.

С физической точки зрения:

  • если подать фиксированное напряжение, то можно увидеть, что индуктивность пропорциональна "медленности" нарастания тока;

  • если подать фиксированный ток, то можно увидеть, что ёмкость пропорциональна "медленности" нарастания напряжения.

где "медленность" - величина обратная скорости.

С практической - просто вывернул уравнения ёмкости и индуктивности в нестандартный вид, чтобы на картинке лучше смотрелись.

Да, но вы же понимаете, что с физической точки зрения запись абсолютно некорректна. Даже если бы вы хотели просто «перевернуть» производную.

Нет, не понимаю.

Допустим, у нас есть индуктивность неизвестного номинала и источник известного напряжения. Мы подключаем одно к другому и всё вместе к осциллографу. Получаем зависимость тока от времени.

Как, на Ваш взгляд, можно определить номинал индуктивности?

Вам просто хотят сказать что ток зависит от времени, а не время от тока. И записть dt/dI вызывает небольшой диссонанс, и хотят там видеть 1/(dI(t)/dt). Хотя если трактовать как предел приращения времени к приращению тока, то ничего криминального в этом нет.

Как коэффициент пропорциональности между током и магнитным потоком, каковым он всегда и был в этом контексте.

а зачем монструозная функция деления комплексных чисел? не проще ли через домножение на комплексно сопряженное 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 часа. Так что, пока смысла переходить в облака нет.

Но для общего развития хотелось бы спросить:

  1. Сталкивались ли с облачными видеокартами?

  2. Есть провайдеры, которые позволяют установить в виртуалку любой компилятор (Free Pascal например) и запускать собранное им?. Когда я интересовался в последний раз этой темой предлагался фиксированный набор ПО.

Описанная программа в основном под линукс и собирается.

  1. Это специфическое направление, я не работал с GPU в облаке. Знаю что сейчас все ведущие провайдеры предлагают инстансы с GPU: AWS, GCP, Azure, Яндекс.

  2. Я не сталкивался с ограничениями на установку опенсорс-софта на инстансы. Набиваете шаблон и стартуете когда вам нужно и сколько вам нужно.
    Лет десять назад приходилось видеть подход "вот разрешенные загрузочные образы, если вам чего-то не хватает - звоните", но сейчас этого нет.

судя по поисковой выдаче, Free Pascal доступен даже как serverless на AWS. Вряд ли он будет подключен к GPU, но это может сгодиться.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории