Я не знаю ни одной библиотечной функции, которая могла бы это проверить. Однако на ум приходит один «взлом»:
X11 или любой другой системный компонент, который управляет подключенным монитором, должен использовать часть памяти графического процессора.
Итак, убедитесь, что оба устройства сообщают об одном и том же объеме доступной глобальной памяти через cudaGetDeviceProperties , а затем проверьте значение поля totalGlobalMem.
Если это то же самое, попробуйте выделить этот (или только немного меньший) объем памяти на каждом графическом процессоре и посмотрите, какой из них этого не делает (cudaMalloc возвращает флаг ошибки).
Некоторое время назад я где-то читал (я не помню, где), что когда вы увеличиваете разрешение монитора, в то время как в GPU присутствует активный контекст CUDA, этот контекст может стать недействительным. Это намекает на то, что приведенное выше предложение может сработать. Обратите внимание, что я никогда не пробовал. Это просто мое дикое предположение.
Если вам удастся подтвердить, что это работает или нет, сообщите нам!