int count_; // do we need int64_t?
__host__ __device__ WelfordData() {
+ }
+
+ // stripping initialization from default constructor to avoid dynamic
+ // initialization warning thrown from using this data structure in CUDA kernel
+ // as static shared memory.
+ __host__ __device__ void reset() {
mean_ = T(0);
m_2_n_ = T(0);
count_ = 0;
{
THCAssertSameGPU(THCTensor_(checkGPU)(state, 2, self_, src));
+ WelfordData<accreal, scalar_t> init;
+ init.reset();
if (!THC_reduceDim<scalar_t>(state, self_, src,
ModifyWelford<WelfordData<accreal, scalar_t>>{},
ReduceWelford<accreal, scalar_t>{},
VarianceWelford<accreal, scalar_t>{biased, true},
- WelfordData<accreal, scalar_t>{},
+ init,
dimension,
keepdim)) {
THArgCheck(false, 2, CUTORCH_DIM_WARNING);
{
THCAssertSameGPU(THCTensor_(checkGPU)(state, 2, self_, src));
+ WelfordData<accreal, scalar_t> init;
+ init.reset();
if (!THC_reduceDim<scalar_t>(state, self_, src,
ModifyWelford<WelfordData<accreal, scalar_t>>{},
ReduceWelford<accreal, scalar_t>{},
VarianceWelford<accreal, scalar_t>{biased, false},
- WelfordData<accreal, scalar_t>{},
+ init,
dimension,
keepdim)) {
THArgCheck(false, 2, CUTORCH_DIM_WARNING);