     std::cout << "   D\\D";
 
     for (auto device : cuda::devices()) {
-        std::cout << std::setw(6) << device.id() << ' ';
+        std::cout << std::setw(bandwidth::field_width) << device.id() << ' ';
     }
 
     std::cout << "\n";
 
     for (auto device : cuda::devices()) {
-        std::cout << std::setw(6) << device.id() << ' ';
-
-        for (auto peer : cuda::devices()) {
-            std::cout << std::setprecision(2) << std::setw(9) << bandwidthMatrix[device.id() * numGPUs + peer.id()];
+        std::cout << std::setw(bandwidth::field_width) << device.id() << ' ';
+
+        for (auto peer : cuda::devices()) {
+            std::cout << std::setprecision(bandwidth::precision) << std::setw(bandwidth::field_width) << bandwidthMatrix[device.id() * numGPUs + peer.id()];
         }
 
         std::cout << "\n";


constexpr const unsigned long long default_timeout_clocks = 10000000ull;

__global__ void delay(volatile int *flag, unsigned long long timeout_clocks = default_timeout_clocks)
{
    // Wait until the application notifies us that it has completed queuing up the

        for (auto peer : cuda::devices()) {
            if ((cuda::device_t)device != (cuda::device_t)peer) {
                auto access = cuda::device::peer_to_peer::can_access(device, peer);
                std::cout << "Device " << device.id() << (access ? " CAN" : " CANNOT") << " access Peer Device " << peer.id() << "\n";
            }
        }
    }
