                     = transform(accum, activation);
         }
 
-#if defined(__DEVICE_EMULATION__) && 0
+#if defined(__DEVICE_EMULATION__) && 1
         __syncthreads();
         if (tid == 0 && block_num == 0) {
             fprintf(stderr, "completed fprop layer %d example %d; label %d\n",

            float prev = (l == 0 ? input[i] : last_layer_outputs[i]); 
            float update = prev * k * d;

            atomic_add(layer_updates[i * w_stride + tid], update);
        }
        
        /* Update the bias */

{
    switch (activation) {
    case ML::ACT_TANH: {
        return tanh(input);
        float exp2i = __expf(input + input);
        return __fdividef(exp2i - 1.0f, exp2i + 1.0f);
    }
