{"record":{"id":"fc374c8d6cbe1eca","repo":"jax-ml/jax","slug":"explicit-tiling-is-only-supported-for-sparsecore-k","errorCode":null,"errorMessage":"explicit tiling is only supported for SparseCore kernels.","messagePattern":"explicit tiling is only supported for SparseCore kernels\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"jax/_src/tpu_custom_call.py","lineNumber":805,"sourceCode":"        )\n\n    if collective_id is None:\n      raise ValueError(\n          \"collective_id has to be specified when using a custom barrier \"\n          \"(cannot auto-allocate without lowering context)\"\n      )\n  elif collective_id is not None and not allow_collective_id_without_custom_barrier:\n    raise ValueError(\n        \"collective_id has to be unspecified or None when not using a custom\"\n        \" barrier\"\n    )\n  if vmem_limit_bytes is not None and not isinstance(vmem_limit_bytes, int):\n    raise ValueError(\n        \"vmem_limit_bytes must be an int: provided with a\"\n        f\" {type(vmem_limit_bytes)}.\"\n    )\n  if tiling is not None and  device_type != \"sparsecore\":\n    raise ValueError(\n        \"explicit tiling is only supported for SparseCore kernels.\"\n    )\n  if opt_level is not None and device_type != \"sparsecore\":\n    raise ValueError(\n        \"explicit opt_level is only supported for SparseCore kernels.\"\n    )\n  return CustomCallBackendConfig(\n      lowered_module_asm,\n      lowered_module_asm_version,\n      has_communication,\n      collective_id,\n      device_type,\n      cost_estimate,\n      needs_hlo_passes,\n      needs_layout_passes,\n      vmem_limit_bytes,\n      flags,\n      allow_input_fusion,","sourceCodeStart":787,"sourceCodeEnd":823,"githubUrl":"https://github.com/jax-ml/jax/blob/1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb/jax/_src/tpu_custom_call.py#L787-L823","documentation":"An explicit tiling parameter was passed for a kernel whose device_type is not sparsecore; explicit tiling only applies to SparseCore kernels.","triggerScenarios":"Passing tiling=... in compiler params to a TensorCore (dense) Pallas kernel.","commonSituations":"Reusing sparse-core config on dense kernels.","solutions":["Remove the tiling param for non-sparsecore kernels","Or ensure the kernel is actually a SparseCore kernel (target sparsecore)"],"exampleFix":"// before\nkernel(..., compiler_params=dict(tiling=tiling))\n// after\nkernel(...)  # omit tiling for TensorCore kernels","handlingStrategy":"validation","validationCode":"if device_type != 'sparsecore':\n    params.pop('tiling', None)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Gate tiling params on kernel type in your config builder"],"tags":["tpu","pallas","tiling","sparsecore","invalid-argument"],"backgroundTag":"invalid-argument-combination","analyzedSha":"1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb","analyzedAt":"2026-08-27T09:53:25.647Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}