schwarrx · GitHub

Calling convolve3 on multiple devices fails with the following code, although the inner loop runs successfully on each device individually. Tested on GeForce GTX TITAN Black, 6144 MB, CUDA Compute 3.5
ArrayFire v3.4.0 (CUDA, 64-bit Linux, build 3dbb7a9 )
Platform: CUDA Toolkit 7, Driver: 346.46

try {

    int ndevices = getDeviceCount();
    for (int i = 0; i < ndevices ; i++)
    {
    setDevice(i); // hardcoding this to any available device works
    int n = 25;
    array x = randu(100,100,100);
    int t_dim = 50;
    array all_t = randu(t_dim, t_dim, t_dim, n);
    for (int j = 0; j < n; j++){
         convolve3(x,all_t(span,span,span,j), AF_CONV_EXPAND);
    }
    }
} catch (af::exception& e) {
    fprintf(stderr, "%s\n", e.what());
    throw;
}

Read the original on github.com ↗