пример не скомпилирован cuda 9.1 - ubuntu 16.04 LTS - с использованием поточных прерываний [дубликат]

Монополия - это дьявол, а синглтоны с не-readonly / изменяемым состоянием являются «реальной» проблемой ...

После прочтения Синглтоны являются патологическими лиарами , как предложено в Ответ jason Я наткнулся на этот маленький лакомый кусочек, который дает наилучший представленный пример того, как часто используются неработающие синглтоны.

Глобально плохо, потому что:

  • а. Это вызывает конфликт пространства имен
  • b. Он обнародует состояние необоснованным образом

. Когда дело доходит до синглтонов

  • a. Явный способ OO их вызова, предотвращает конфликты, поэтому укажите a. не является проблемой
  • b. Синглтоны без состояния (например, фабрики) не являются проблемой. Синглтоны с состоянием могут снова попадать в две категории: те, которые неизменяемы или пишут один раз и читают много (файлы конфигурации / свойства). Это неплохо.
blockquote>

В последнем заявлении он ссылается на концепцию блога о том, что «одиночки являются лжецами».

Как это относится к монополии?

Чтобы начать игру монополии, сначала:

  • мы сначала устанавливаем правила, чтобы все были на на той же странице
  • каждому дано равное начало в начале игры
  • представлен только один набор правил, чтобы избежать путаницы
  • , правила не разрешено изменять всю игру

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

Итак, вы играете монополию с друзьями Бобом, Джо и Эд. Вы быстро наращиваете свою империю и потребляете долю рынка по экспоненциальной ставке. Ваши противники ослабевают, и вы начинаете ощущать запах крови (образно). Ваш приятель Боб поставил все свои деньги в тупик как можно больше низкоценных свойств, но он не получает высокую отдачу от инвестиций так, как он ожидал. Боб, как удар неудачи, приземляется на ваш Boardwalk и вырезается из игры.

Теперь игра идет от дружественных кубиков к серьезному бизнесу. Боб был приведен в пример неудачи, и Джо и Эд не хотят заканчивать так, как «тот парень». Итак, будучи ведущим игроком, вы внезапно становитесь врагом. Джо и Эд начинают практиковать торговлю под столом, прямую инъекцию денег, недооцененную домашнюю замену и вообще что-нибудь, чтобы ослабить вас как игрока, пока один из них не поднялся на вершину.

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

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

Как это относится к программированию?

Помимо всех очевидных проблем безопасности потоков и синхронизации, которые могут быть изменены с помощью синглтонов ... Если у вас есть один набор данных, то есть способный одновременно считываться / управляться несколькими разными источниками и существовать в течение всего времени выполнения приложения, вероятно, самое подходящее время для того, чтобы отступить и спросить: «Я использую здесь правильный тип структуры данных».

Лично я видел, как программист злоупотреблял синглэном, используя его как своего рода переплетенный хранилище баз данных кросс-потоков в приложении. Работая над кодом напрямую, я могу подтвердить, что он был медленным (из-за всех блокировок потоков, необходимых для обеспечения его потокобезопасности) и кошмара для работы (из-за непредсказуемого / прерывистого характера ошибок синхронизации) и почти невозможно проверить в условиях «производства». Конечно, система могла быть разработана с использованием опроса / сигнализации для решения некоторых проблем с производительностью, но это не решило бы проблемы с тестированием и, зачем беспокоиться, когда «настоящая» база данных может уже реализовать ту же функциональность в гораздо более надежной / масштабируемым образом.

. Синглтон - это только вариант, если вам нужно то, что обеспечивает один синглтон. Один экземпляр объекта только для чтения. Это же правило должно также каскадироваться к свойствам объекта / членам.

14
задан talonmies 13 February 2016 в 09:14
поделиться

1 ответ

CUDA VERSION   Min CC   Deprecated CC  Default CC
5.5 (and prior) 1.0       N/A             1.0
6.0             1.0       1.0             1.0
6.5             1.1       1.x             2.0
7.0             2.0       N/A             2.0
7.5 (same as 7.0)
8.0             2.0       2.x             2.0
9.0             3.0       N/A             3.0
9.1/9.2 (same as 9.0)

Min CC = minimum compute capability that can be specified to nvcc

Deprecated CC = If you specify this CC, you will get a deprecation message, but compile should still proceed.

Default CC = The architecture that will be targetted if no `-arch` or `-gencode` switches are used
24
ответ дан Robert Crovella 21 August 2018 в 15:07
поделиться
  • 1
    Благодаря! На самом деле у меня были некоторые проблемы с установкой CUDA 6 на моем GPU с CC 1.2 и считалось, что он не поддерживается. Но похоже, что проблема в другом месте. – Max 9 March 2015 в 09:33
  • 2
    где ты нашел эту информацию? Есть ли официальная версия, обновленная для CUDA 9.0? – Alexander Pacha 3 January 2018 в 09:40
  • 3
    Я обновил для 9.0 / 9.1 – Robert Crovella 3 January 2018 в 15:16
  • 4
    Фактически для CUDA 9.0: GPU card with CUDA Compute Capability 3.0 or higher for building from source and 3.5 or higher for our binaries. , как указано в tensorflow.org/versions/r1.7/install/install_linux – Andrzej Piasecki 25 May 2018 в 12:06
  • 5
    @AndrzejPiasecki - это требование, характерное для Tensorflow (и оно может измениться в будущем), а не общее требование CUDA для использования CUDA 9.0. Этот вопрос не о Tensorflow. – Robert Crovella 25 May 2018 в 13:03
Другие вопросы по тегам:

Похожие вопросы: