docstr: Compute the derivative with respect to x, other tensors were not trainable inputs.
docstr_tok: ["Compute","the","derivative","with","respect","to","x",",","other","tensors","were","not","trainable","inputs","."]
code: def backward(
      ctx: Any, grad_out: torch.Tensor
  ) -> (
      Any
  ):  # pragma: no cover  # this is covered, but called directly from C++
      """
      Compute the derivative with respect to x, other tensors were not trainable inputs.
      """
      (weight, activation_inputs, x) = ctx.saved_tensors
  
      grad_input, grad_weight, grad_bias = fused_matmul_backward(
          grad_out=grad_out,
          inputs=x,
          act_in=activation_inputs,
          weight=weight,
          trainable_weight=ctx.trainable_weight,
          trainable_bias=ctx.trainable_bias,
          activation_grad=ctx.activation,
      )
  
      return (
          grad_input,
          grad_weight,
          grad_bias,
          None,
          None,
          None,
          None,
          None,
          None,
      )
  
file_path: xformers/xformers/triton/fused_linear_layer.py
imports: import math
  from typing import Any, Optional
  import torch
  import torch.nn
  from torch.cuda.amp import custom_bwd, custom_fwd
  from xformers.components.activations import Activation
  from xformers.triton.k_activations import get_triton_activation_index
  from xformers.triton.k_fused_matmul_bw import fused_matmul_backward
  from xformers.triton.k_fused_matmul_fw import fused_matmul
label_desc: Use image node_id 2 for calling the _fused_linear_triton obj's underlying member method code with example usage: obj.backward(ctx, grad_out) and returns: grad_input,  grad_weight,  grad_bias,  None,  None,  None,  None,  None,  None