| 311 | |
| 312 | |
| 313 | def parse_kernel_name(demangledName): |
| 314 | if demangledName == -2: |
| 315 | return "Memcpy" |
| 316 | if demangledName == -3: |
| 317 | return "Memset" |
| 318 | name = string_ids[demangledName] |
| 319 | for dst, src in parser_keywords: |
| 320 | if not isinstance(src, (tuple, list)): |
| 321 | src = [src] |
| 322 | if all(keyword in name for keyword in src): |
| 323 | return dst |
| 324 | if re.search(r"at::native::.*elementwise_kernel<", name): |
| 325 | if name not in warned_names: |
| 326 | print(f"Not parsed torch kernel name: {name}", file=sys.stderr) |
| 327 | warned_names.add(name) |
| 328 | assert "!unnamed!" not in name |
| 329 | name = name.replace("<unnamed>", "!unnamed!") |
| 330 | if "<" in name: |
| 331 | name = name[: name.index("<")] |
| 332 | if "(" in name: |
| 333 | name = name[: name.index("(")] |
| 334 | if "::" in name: |
| 335 | name = name[name.rindex("::") + 2 :] |
| 336 | name = name.replace("!unnamed!", "<unnamed>") |
| 337 | return name |
| 338 | |
| 339 | |
| 340 | converted_seqs = [] |