code: def on_start(
      self, task: "flash.image.embedding.vissl.adapter.MockVISSLTask"
  ) -> None:
      super().on_start(task)
  
      lightning_module = task.vissl_adapter.adapter_task
  
      # specific to simclr in VISSL
      task.loss.info_criterion.buffer_params.effective_batch_size = (
          task.world_size
          * 2
          * lightning_module.trainer.datamodule.batch_size
      )
      task.loss.info_criterion.buffer_params.world_size = (
          task.world_size
      )
  
      task.loss.info_criterion.precompute_pos_neg_mask()
  
      # Cast the loss to the correct device / dtype
      task.loss.to(lightning_module.device, lightning_module.dtype)
  
file_path: lightning-flash/src/flash/image/embedding/vissl/hooks.py
imports: from typing import Any, List
  import torch
  from pytorch_lightning.core.hooks import ModelHooks
  import flash
  from flash.core.utilities.compatibility import accelerator_connector
  from flash.core.utilities.imports import _VISSL_AVAILABLE
label_desc: Use image node_id 2 for calling the SimCLRTrainingSetupHook obj's underlying member method code with example usage: obj.on_start(task) without return types