import torch print(" device ", torch.cuda.get_device_name(0)) print(" capability ", torch.cuda.get_device_capability(0)) print(" arch_list ", torch.cuda.get_arch_list()) a = torch.randn(4096, 4096, device="cuda", dtype=torch.bfloat16) b = torch.randn(4096, 4096, device="cuda", dtype=torch.bfloat16) print(" matmul ok ", torch.matmul(a, b).float().abs().mean().item() > 0) import transformer_engine.pytorch as te lin = te.Linear(1024, 1024, params_dtype=torch.bfloat16).cuda() print(" TE Linear ", tuple(lin(torch.randn(8, 1024, device="cuda", dtype=torch.bfloat16)).shape)) from mamba_ssm.ops.selective_scan_interface import selective_scan_fn import causal_conv1d from causal_conv1d import causal_conv1d_fn x = torch.randn(2, 64, 128, device="cuda", dtype=torch.bfloat16) w = torch.randn(64, 4, device="cuda", dtype=torch.bfloat16) print(" causal_conv1d CUDA op", tuple(causal_conv1d_fn(x, w).shape)) print("GPU_GATE_PASS")