                     = 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",

    unsigned last_example = min(total_num_examples, example_num_base + examples_per_block);

    unsigned example_num = example_num_base;
#if 0
    for (;  example_num < last_example - 3;  example_num += 4) {
        const float * input1 = feature_vectors + example_num * feature_vector_width;
        const float * input2 = input1 + feature_vector_width;


            d_weight_updates_storage[l].sync(sync_to);
            std::copy(sync_to, sync_to + ni * w_stride, weight_updates[l]);

#if 0
            cerr << "first 10 weight updates for layer " << l << ": ";
            for (unsigned i = 0;  i < 10;  ++i)
                cerr << sync_to[i] << " ";
            cerr << endl;
#endif
        }

        for (unsigned l = 0;  l < plan.num_layers;  ++l) {
