code: def _test_std_dev_large_data(rank, axes, device, in_layout):
      batch_size = 16
      num_batches = 2
      data = fast_large_random_batches(rank, batch_size, num_batches)
  
      pipe = Pipeline(
          batch_size=batch_size,
          num_threads=4,
          device_id=0 if device == "gpu" else None,
      )
      input = fn.external_source(
          data, cycle=True, device=device, layout=in_layout
      )
      mean = fn.reductions.mean(input, axes=axes)
      reduced = fn.reductions.std_dev(input, mean, axes=axes, ddof=0)
      pipe.set_outputs(reduced)
      pipe.build()
  
      for b, batch in enumerate(data):
          (out,) = pipe.run()
          check_layout(out, in_layout, axes, False)
          if device == "gpu":
              out = out.as_cpu()
          for i in range(batch_size):
              ref = np.std(
                  batch[i].astype(np.float64), axis=axes, ddof=0
              )
              assert np.allclose(out[i], ref, 1e-5, 1e-5)
  
imports: import nvidia.dali.fn
  from nvidia.dali.pipeline import Pipeline
  from nose.tools import nottest
  import numpy
  from test_utils import np_type_to_dali
  from nose_utils import assert_raises
label_desc: Use image node_id 24 for calling a global function with example usage: _test_std_dev_large_data(rank, axes, device, in_layout) without return types