Для ядра CUDA мы можем запустить не более 65536 блоков. Каждый запущенный блок может содержать до 1024 потоков. Поэтому в принципе я могу запустить до 65536 * 1024 (= 67108864) потоков.
blockquote>Нет, это неверно. Вы можете запустить сетку до 65535 x 65535 x 65535 блоков, и каждый блок имеет максимум 1024 потока на блок, хотя ограничение потока потоков может ограничить общее количество потоков на блок меньше этого максимума.
Что делать, если мой поток использует много регистров? Будет ли мы до сих пор иметь возможность достичь этого теоретического максимума числа потоков?
blockquote>Нет, вы не сможете достичь максимального количества потоков на блок в этом случае. Каждый выпуск инструментария NVIDIA CUDA включает таблицу калькулятора занятости, которую вы можете использовать, чтобы увидеть влияние давления регистра на размер предельного блока.
Кроме того, после написания и запуска ядра CUDA, как сделать Я знаю, что количество потоков и блоков, которые я запускал, действительно было создано. Я имею в виду, что я не хочу, чтобы графический процессор вычислял некоторый барахло или странно наблюдал, если бы я случайно создал больше потоков, чем это возможно для этого конкретного ядра.
blockquote>Если вы выберете неправильную конфигурацию выполнения (так что неправильный размер блока или размер сетки) ядро не запускается, и среда выполнения выдаст сообщение об ошибке
cudaErrorInvalidConfiguration
. Вы можете использовать стандартныеcudaPeekAtLastError()
иcudaGetLastError()
, чтобы проверить статус запуска ядра.
Пользовательский интерфейс не может быть напрямую обновлен из потока, отличного от приложения. Вместо этого используйте Platform.runLater()
, с логикой внутри объекта Runnable. Например:
Platform.runLater(new Runnable() {
@Override
public void run() {
// Update UI here.
}
});
В качестве выражения лямбда:
// Avoid throwing IllegalStateException by running from a non-JavaFX thread.
Platform.runLater(
() -> {
// Update UI here.
}
);
Код JavaFX позволяет обновлять пользовательский интерфейс из потока приложений JavaFX. Но из приведенного выше сообщения об исключении говорится, что он не использует поток приложений FX.
. Один из способов, который вы можете исправить, - запустить поток приложения FX из метода resetPage и внести изменения в него.
Platform.runLater();
будет ли поток JavaFX? как вы упомянули. – Asif Mushtaq 21 September 2016 в 15:49