RAPIDS
    Preparing search index...

    Variable devicesConst

    devices: DeviceList = ...

    While this list may seem like an Array, it is a JavaScript Proxy that only creates and returns a Device instance for a given device ordinal the first time it's accessed.

    Enumerating the devices list (i.e. [...devices]) will create and cache Device instances for all CUDA devices available to the current process.

    import {Device, devices} from '@rapidsai/cuda';

    console.log(`Number of devices: ${devices.length}`);

    // CUDA Device 0 is automatically activated by default
    console.log(`Active device id: ${Device.activeDeviceId}`); // 0

    // Access (and create) Devices 0,1
    const [device0, device1] = devices;

    console.log(device0);
    // > CUDADevice {"id":0,"name":"Quadro RTX 8000","compute_capability":[7,5]}

    console.log(device0.pciBusName);
    // > '0000:15:00.0'

    console.log(device0.canAccessPeerDevice(device1));
    // > true

    console.log(device0.getProperties());
    // > {
    // > name: 'Quadro RTX 8000',
    // > totalGlobalMem: 50944540672,
    // > sharedMemPerBlock: 49152,
    // > regsPerBlock: 65536,
    // > warpSize: 32,
    // > memPitch: 2147483647,
    // > maxThreadsPerBlock: 1024,
    // > ...
    // > }

    // Device 0 remains the active device until `device1` is made active
    console.log(`Active device id: ${Device.activeDeviceId}`);
    // > 0

    device1.activate();
    console.log(`Active device id: ${Device.activeDeviceId}`);
    // > 1

    // Set Device 0 to the active device again
    device0.activate();
    console.log(`Active device id: ${Device.activeDeviceId}`);
    // > 0