gpuDeviceCount

Количество существующих устройств графического процессора

    Описание

    пример

    n = gpuDeviceCount возвращает количество устройств графического процессора, существующих в вашей локальной машине, как сообщается драйвером устройства графического процессора. Все устройства, о которых сообщает драйвер, считаются, включая устройства, которые не поддерживаются в MATLAB® и устройства, которые не доступны для использования в текущем сеансе работы с MATLAB.

    пример

    n = gpuDeviceCount(countMode) возвращает количество устройств графического процессора в вашей машине, считаемой согласно countMode. Используйте этот синтаксис, чтобы считать только поддерживаемые устройства графического процессора или считать только устройства, которые доступны для использования в этом сеансе работы с MATLAB.

    пример

    [n,indx] = gpuDeviceCount(___) также возвращает индексы считаемых устройств графического процессора для любого из предыдущих синтаксисов. Используйте этот синтаксис, когда это необходимо, чтобы выбрать или исследовать считаемые устройства графического процессора.

    Примеры

    свернуть все

    Определите количество устройств графического процессора, доступных в вашем компьютере и их индексах.

    [n,indx] = gpuDeviceCount
    n = 2
    indx =   
         1     2
    

    Запросите свойства использования графических процессоров gpuDeviceTable.

    gpuDeviceTable
    ans = 
        Index        Name              ComputeCapability    DeviceAvailable    DeviceSelected
        _____    __________________    _________________    _______________    ______________
    
          1      "TITAN RTX"                 "7.5"               true              false     
          2      "GeForce GTX 1080"          "5.0"               true              true      
    
    

    Если у вас есть доступ к нескольким графическим процессорам, можно выполнить вычисления на нескольких графических процессорах в параллели с помощью параллельного пула.

    Чтобы определить количество графических процессоров, которые доступны для использования в MATLAB, используйте gpuDeviceCount функция.

    availableGPUs = gpuDeviceCount("available")
    availableGPUs = 3
    

    Начните параллельный пул со стольких же рабочих сколько доступные графические процессоры. Для лучшей эффективности MATLAB присваивает различный графический процессор каждому рабочему по умолчанию.

    parpool('local',availableGPUs);
    Starting parallel pool (parpool) using the 'local' profile ...
    Connected to the parallel pool (number of workers: 3).
    

    Чтобы идентифицировать, который использует графический процессор каждый рабочий, вызовите gpuDevice в spmd блок. spmd блок запускает gpuDevice на каждом рабочем.

    spmd
        gpuDevice
    end

    Используйте функции языка параллельного программирования, такие как parfor или parfeval, распределить ваши расчеты рабочим в параллельном пуле. Если вы используете gpuArray активированные функции в ваших расчетах, эти функции работают на графическом процессоре рабочего. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре. Для примера смотрите функции MATLAB Запуска на Нескольких графических процессорах.

    Когда вы закончите с вашими расчетами, закрытием параллельный пул. Можно использовать gcp функция, чтобы получить текущий параллельный пул.

    delete(gcp('nocreate'));

    Если вы хотите использовать различный выбор графических процессоров, то можно использовать gpuDevice выбрать конкретный графический процессор на каждом рабочем, с помощью индекса устройства графического процессора. Можно получить индекс каждого устройства графического процессора в системе с помощью gpuDeviceCount функция.

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

    [availableGPUs,gpuIndx] = gpuDeviceCount("available")
    availableGPUs = 3
    
    gpuIndx = 1×3
    
         1     2     3
    
    

    Задайте индексы устройств, которые вы хотите использовать.

    useGPUs = [1 3];

    Запустите свой параллельный пул. Используйте spmd блок и gpuDevice чтобы сопоставить каждого рабочего с помощью одного из графических процессоров, вы хотите использовать, с помощью индекса устройства. labindex функция идентифицирует индекс каждого рабочего.

    parpool('local',numel(useGPUs));
    Starting parallel pool (parpool) using the 'local' profile ...
    Connected to the parallel pool (number of workers: 2).
    
    spmd
        gpuDevice(useGPUs(labindex));
    end

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

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

    delete(gcp('nocreate'));

    Входные параметры

    свернуть все

    Режим количества устройства в виде одного из следующего:

    • "all" — Считайте все устройства графического процессора сообщаемыми драйвером устройства графического процессора. Количество включает устройства, которые не поддерживаются в MATLAB и устройствах, которые не доступны для использования в текущем сеансе работы с MATLAB.

    • "supported" — Считайте только устройства графического процессора, которые поддерживаются текущей версией MATLAB.

    • "available" — Считайте только устройства графического процессора, которые доступны для использования в текущем сеансе работы с MATLAB.

    Пример: "available"

    Типы данных: char | string

    Выходные аргументы

    свернуть все

    Количество устройств графического процессора, возвращенных как положительная скалярная величина.

    Индексы устройств графического процессора, возвращенных как числовой вектор. Каждый элемент indx индекс устройства считаемого устройства графического процессора. Используйте индекс устройства, чтобы выбрать или запросить устройство графического процессора с помощью gpuDevice функция.

    Представленный в R2010b