Nano Hash - криптовалюты, майнинг, программирование

Неявная работа Multi GPU

В OpenCL возможно ли, чтобы система, состоящая из нескольких графических процессоров, неявно разделяла работу без явного разделения программистом рабочей нагрузки?
Например, скажем, у меня есть графический процессор, состоящий из 1 ядра SM 192, и я запускаю матричное умножение, которое работает нормально. Теперь я добавляю еще один такой же графический процессор, и OpenCL использует оба графических процессора для вычисления умножения матриц на нем, а не программиста, распределяющего рабочую нагрузку между каждым графическим процессором.

14.05.2016

Ответы:


1

Я не думаю, что OpenCL может делать это автоматически (по крайней мере, в 1.2), но есть некоторые оболочки OpenCL, которые могут автоматически обрабатывать несколько вычислительных устройств. Я не использовал OpenCL CodeBench, но они утверждают, что у них есть балансировка нагрузки нескольких вычислительных устройств.

14.05.2016
  • Таким образом, при наличии двух карт GPU с 1 SM система идентифицирует всего 2 SM, присутствующих в системе? 14.05.2016

  • 2

    Вы можете объединить только память устройств и сделать это только с версией 2.0 opencl и выше.

    Ядра ставятся в очереди команд и создаются с одним устройством (и привязаны к нему). Поэтому они могут работать только на одном устройстве. Но несколько очередей команд могут работать в общем контексте, что позволяет использовать неявную синхронизацию буферов.

    Разделение работы не может быть выполнено неявно, поскольку во время выполнения нельзя знать, какой рабочий элемент обращается к какому адресу памяти.

    После того, как вы напишете работающую оболочку для одного устройства, добавление поддержки нескольких графических процессоров не составит большого труда.

    12.03.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..