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

поток cuda с первым дыханием: ядра и передачи D2H

Со ссылкой на страницу 21 в этом файле презентации: http://on-demand.gputechconf.com/gtc-express/2011/presentations/StreamsAndConcurrencyWebinar.pdf

Я не понимаю, почему последовательно выпущенные ядра задерживают сигналы и блокируют передачи D2H. Так ли это для современных устройств CUDA

Ваше здоровье

21.03.2016

Ответы:


1

Презентация датируется 2011 годом и в первую очередь предназначалась для устройств с архитектурой Fermi (cc2.x).

В этих устройствах возможность полного параллелизма копий D2H и H2D вместе с одним или несколькими ядрами в конвейерном алгоритме (т. е. последовательность запусков D2H, H2D и ядра в обычном порядке) будет зависеть от фактический порядок выдачи (т. е. последовательность операций в хост-потоке). Это связано с «ложными зависимостями», которые архитектура Fermi вставляла между операциями в отдельных потоках, которые не должны иметь никакой зависимости друг от друга. Краткое описание причины этого дано на слайдах 20 и 21 данной презентации. Я не думаю, что было опубликовано более подробное описание этой архитектурной характеристики Ферми.

Кеплер представил Hyper-Q, который должен был уменьшить или устранить этот эффект. Архитектура не должна вводить такие ложные зависимости, поэтому с Kepler (cc3.x) и более поздними версиями должно быть возможно выполнять операции либо в порядке в глубину, либо в порядке в ширину, и по-прежнему наблюдать параллелизм между передачами данных. и операции ядра.

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

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

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

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

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

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

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

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