Intent intent = new Intent(Intent.CALL_ACTION);
intent.setData(Uri.parse("tel:09999"));
startActivity(intent);
Я хочу использовать этот метод вне метода onClick
Самое основное решение состоит в том, чтобы выбрать точку в вычислении некоторый процент пути через это, я уверен GPU, с которым я работаю, может завершиться вовремя, сохранить всю информацию состояния и остановку, затем запуститься снова.
Обновление: Для Linux: Выход X позволит Вам запускать приложения CUDA, пока Вы хотите. Никакая Tesla не потребовала (9600 использовался в тестировании этого)
, Одна вещь отметить, однако, состоит в том, что, если X никогда не вводится, драйверы, вероятно, не будут загружены, и оно не будет работать.
также кажется, что для Linux, просто не имея никаких X дисплеев в то время будет также работать, таким образом, X не должен выйтись, пока Вы экранируете к non-X полноэкранному терминалу.
В Windows графический драйвер имеет сторожевой таймер, который закрывает любые программы программы построения теней, которые работают больше 5 секунд. Обратите внимание, что драйверы Xorg/XFree86 не делают этого, таким образом, одно возможное обходное решение должно запустить приложения CUDA на Linux.
AFAIK не возможно отключить сторожевой таймер в Windows. Единственный способ обойти это в Windows состоит в том, чтобы использовать вторую карту, которая не имеет никаких отображенных экранов на нем. Это не должна быть Tesla, но это не должно иметь никаких активных экранов.
Это не возможно. Тайм-аут там для предотвращения ошибок в вычислениях от приведения в рабочее состояние GPU в течение долгих промежутков времени.
при использовании специальной карты для работы CUDA ограничение по времени снято. Я не уверен, требует ли это карты Tesla, или если GeForce без подключенного монитора может использоваться.
A1
супертип A
- то есть, я могу пойти от Int
до Any
(например), но не от Any
до Int
.
– Daniel C. Sobral
4 July 2012 в 08:34
Я не эксперт CUDA,---я разрабатывал с Потоком AMD SDK, какой AFAIK примерно сопоставим.
можно отключить сторожевой таймер Windows, но это высоко не рекомендовано по причинам, которые должны быть очевидными. Для отключения его Вы нуждаетесь к regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Watchdog\Display\DisableBugCheck
, создаете REG_DWORD и устанавливаете его на 1. Вы, возможно, также должны сделать что-то в панели управления Nvidia. Ищите некоторую ссылку на "Восстановление VPU" в документах CUDA.
Идеально, необходимо смочь расстаться операции ядра в несколько передает по данным для разбивания его в операции, которые работают в ограничении по времени.
, С другой стороны, можно разделить проблемную область так, чтобы она вычислила меньше выходных пикселей на команду. Т.е. вместо того, чтобы вычислить 1 000 000 выходных пикселей одним махом, выпуск 10 управляет к gpu для вычислений 100,000 каждый.
основная единица, которая должна соответствовать в интервале времени, не является Вашим целым приложением, но выполнением единственного буфера команд. В Потоке AMD SDK длинная последовательность операций может быть разбита в несколько интервалов времени путем явного сбрасывания очереди команды с CtxFlush () вызов. Возможно, CUDA имеет что-то подобное?
Вы должны не , должны считать все Ваши данные назад и вперед через шину PCIX на каждом интервале времени; можно оставить структуры, и т.д. в gpu локальной памяти; у Вас просто есть некоторые буферы команд, завершенные иногда, чтобы доказать ОС, что Вы не застреваете в бесконечном цикле.
Наконец, GPU быстры , поэтому если бы Ваше приложение не может сделать полезную работу в тех 5 или 10 секунд, я взял бы это в качестве знака, что что-то неправильно.
[РЕДАКТИРУЮТ март 2010 для обновления: ] (устаревший снова, посмотрите обновления ниже для новой информации) , ключ реестра выше является устаревшим. Я думаю, что это было ключом для 64-разрядного Windows XP. Существуют новые ключи реестра для Vista и Windows 7. Можно найти их здесь: http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx или здесь: http://msdn.microsoft.com/en-us/library/ee817001.aspx
[РЕДАКТИРУЕТ апрель 2015 для обновления: ] Это становится действительно устаревшим. Самому легкому способу отключить TDR для программирования Cuda, принимая Вас установили инструменты NVIDIA Nsight, должен открыть Nsight Monitor, нажать на "Nsight Monitor options", и под "Общим" набором "WDDM TDR включил" ко лжи. Это изменит настройки реестра для Вас. Близко и перезагрузка. Любое изменение в установке реестра TDR не вступит в силу, пока Вы не перезагрузите.
[РЕДАКТИРУЮТ август 2018 для обновления:] , Хотя инструменты NVIDIA позволяют отключать TDR теперь, тот же вопрос важен для разработчиков AMD/OpenCL. Для тех: текущая ссылка, которая документирует настройки TDR, в https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys
Я использую следующее решение:
1. Передайте всю информацию на устройство.
2. Запускать итерационные версии алгоритмов, где каждая итерация вызывает ядро в памяти, уже хранящейся в устройстве.
3. Наконец, переносите память на хост только после того, как все итерации закончились.
Это позволяет управлять итерациями от ЦП (включая возможность прерывания), без дорогостоящего устройства <--> передачи памяти хоста между итерациями.
Any
и неAnyVal
. Но кроме этого, я думаю, что понимаю. – Karel Bílek 4 July 2012 в 08:40