code: public long addMemoryTransaction(int deviceId, long timeSpentNanos, long numberOfBytes, @NonNull MemcpyDirection direction) {
          // we calculate bytes per microsecond now
          val bw = (long) (numberOfBytes / (timeSpentNanos / (double) 1000.0));
  
          // we skip too small values
          if (bw > 0)
              bandwidth.get(deviceId).addValue(direction, bw);
  
          return bw;
      }
docs: This method stores bandwidth used for given transaction.
  
  PLEASE NOTE: Bandwidth is stored in per millisecond value.
  
  @param deviceId device used for this transaction
  @param timeSpent time spent on this transaction in nanoseconds
  @param numberOfBytes number of bytes
  @param direction direction for the given memory transaction