Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable CUDA graphs in DDP (ASR). Improve toggle messages #11087

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

artbataev
Copy link
Collaborator

What does this PR do ?

  • disable CUDA graphs in label-looping algorithm in DDP mode
  • improve CUDA graphs toggle message (log only if something changed)

Potentially fixes #10299

Collection: [Note which collection this PR will affect]

Changelog

  • Add specific line by line info of high level changes in this PR.

Usage

  • You can potentially add a usage example below
# Add a code snippet demonstrating how to use this 

GitHub Actions CI

The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.

The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".

Before your PR is "Ready for review"

Pre checks:

  • Make sure you read and followed Contributor guidelines
  • Did you write any new necessary tests?
  • Did you add or update any necessary documentation?
  • Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    • Reviewer: Does the PR have correct import guards for all optional libraries?

PR Type:

  • New Feature
  • Bugfix
  • Documentation

If you haven't finished some of the above items you can still open "Draft" PR.

Who can review?

Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.

Additional Information

  • Related to # (issue)

@artbataev artbataev changed the title Disable CUDA graphs in DDP mode for ASR decoding. Improve CUDA graphs toggle messages Disable CUDA graphs in DDP (ASR). Improve toggle messages Oct 29, 2024
Copy link
Contributor

[🤖]: Hi @artbataev 👋,

We wanted to let you know that a CICD pipeline for this PR just finished successfully

So it might be time to merge this PR or get some approvals

I'm just a bot so I'll leave it you what to do next.

//cc @pablo-garay @ko3n1g

Copy link
Contributor

This PR is stale because it has been open for 14 days with no activity. Remove stale label or comment or update or this will be closed in 7 days.

@github-actions github-actions bot added the stale label Nov 14, 2024
@artbataev artbataev removed the stale label Nov 14, 2024
Copy link
Contributor

beep boop 🤖: 🙏 The following files have warnings. In case you are familiar with these, please try helping us to improve the code base.


Your code was analyzed with PyLint. The following annotations have been identified:

************* Module nemo.collections.asr.parts.submodules.rnnt_greedy_decoding
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:37:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:38:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:40:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:44:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:100:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:102:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:104:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:107:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:109:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:117:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:121:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:149:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:175:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:200:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:249:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:292:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:294:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:296:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:299:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:301:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:309:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:313:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:390:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:391:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:404:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:410:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:420:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:451:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:467:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:530:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:532:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:534:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:537:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:539:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:547:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:551:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:571:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:572:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:574:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:575:0: C0301: Line too long (116/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:578:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:581:0: C0301: Line too long (120/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:632:0: C0301: Line too long (115/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:636:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:644:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:648:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:649:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:691:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:759:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:782:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:803:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:823:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:835:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:840:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:852:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:867:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:873:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:879:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:880:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:896:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:899:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:902:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:904:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:926:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:937:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:944:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:981:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1003:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1026:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1039:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1040:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1042:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1047:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1048:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1052:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1064:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1077:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1084:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1090:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1091:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1107:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1110:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1113:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1115:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1138:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1149:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1156:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1178:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1200:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1212:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1236:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1265:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1290:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1316:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1319:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1363:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1374:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1384:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1442:0: C0301: Line too long (121/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1562:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1572:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1573:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1599:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1624:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1626:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1628:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1630:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1632:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1640:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1644:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1691:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1697:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1707:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1717:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1746:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1760:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1767:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1775:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1828:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1830:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1832:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1834:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1836:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1844:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1848:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1918:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1938:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1946:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1947:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1948:0: C0301: Line too long (116/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1950:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1954:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1975:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1988:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1993:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2005:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2010:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2011:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2034:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2041:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2055:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2058:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2061:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2063:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2094:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2105:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2112:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2154:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2176:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2198:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2210:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2211:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2213:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2218:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2219:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2223:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2235:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2252:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2259:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2273:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2276:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2279:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2281:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2304:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2315:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2322:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2350:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2368:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2399:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2401:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2403:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2405:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2409:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2411:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2412:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2420:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2424:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2505:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2506:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2519:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2526:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2537:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2593:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2598:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2671:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2673:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2675:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2677:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2681:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2683:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2684:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2692:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2696:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2717:0: C0301: Line too long (120/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2836:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1:0: C0302: Too many lines in module (2851/1000) (too-many-lines)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1:0: C0114: Missing module docstring (missing-module-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:32:0: E0401: Unable to import 'numpy' (import-error)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:33:0: E0401: Unable to import 'torch' (import-error)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:34:0: E0401: Unable to import 'omegaconf' (import-error)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:48:0: C0116: Missing function or method docstring (missing-function-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:172:8: C0103: Attribute name "_SOS" doesn't conform to snake_case naming style (invalid-name)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:157:4: R0913: Too many arguments (8/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:157:4: R0917: Too many positional arguments (8/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:184:15: E1101: Instance of '_GreedyRNNTInfer' has no 'forward' member (no-member)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:335:4: R0913: Too many arguments (8/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:335:4: R0917: Too many positional arguments (8/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:403:4: R0912: Too many branches (19/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:403:4: R0915: Too many statements (51/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:584:4: R0913: Too many arguments (10/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:584:4: R0917: Too many positional arguments (10/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:644:28: C0415: Import outside toplevel (nemo.collections.asr.parts.submodules.cuda_graph_rnnt_greedy_decoding.RNNTGreedyDecodeCudaGraph) (import-outside-toplevel)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:668:8: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:687:8: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:691:12: C0415: Import outside toplevel (nemo.collections.asr.parts.submodules.cuda_graph_rnnt_greedy_decoding.RNNTGreedyDecodeCudaGraph) (import-outside-toplevel)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:747:8: W0613: Unused argument 'device' (unused-argument)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:764:4: R0914: Too many local variables (31/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:764:4: R0912: Too many branches (35/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:764:4: R0915: Too many statements (74/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:964:4: R0914: Too many local variables (34/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:964:4: R0912: Too many branches (36/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:964:4: R0915: Too many statements (79/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:993:12: W0612: Unused variable 'alignments' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1177:0: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1213:12: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1221:4: R0914: Too many local variables (27/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1238:57: E1101: Instance of 'ExportedModelGreedyBatchedRNNTInfer' has no 'device' member (no-member)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1315:24: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1322:24: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1221:4: R0912: Too many branches (23/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1221:4: R0915: Too many statements (60/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1280:22: W0612: Unused variable 'pred_lengths' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1285:20: W0612: Unused variable 'v' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1352:4: C0116: Missing function or method docstring (missing-function-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1355:4: C0116: Missing function or method docstring (missing-function-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1362:0: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1362:0: R0902: Too many instance attributes (10/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1371:12: C0415: Import outside toplevel (onnx) (import-outside-toplevel)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1372:12: C0415: Import outside toplevel (onnxruntime) (import-outside-toplevel)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1374:12: W0707: Consider explicitly re-raising using 'except (ModuleNotFoundError, ImportError) as exc' and 'raise ImportError(f'`onnx` or `onnxruntime` could not be imported, please install the libraries.\n') from exc' (raise-missing-from)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1374:30: W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1429:20: W0612: Unused variable 'encoded_length' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1438:19: W0612: Unused variable 'lengths' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1481:16: W0612: Unused variable 'idx' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1498:4: R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1509:16: W0612: Unused variable 'shape_idx' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1520:0: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1520:0: R0902: Too many instance attributes (8/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1521:4: R0913: Too many arguments (6/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1521:4: R0917: Too many positional arguments (6/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1553:30: R1721: Unnecessary use of a comprehension, use list(arguments) instead. (unnecessary-comprehension)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1557:36: R1721: Unnecessary use of a comprehension, use list(arguments) instead. (unnecessary-comprehension)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1590:4: R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1598:12: W0612: Unused variable 'state_id' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1666:4: R0913: Too many arguments (9/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1666:4: R0917: Too many positional arguments (9/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1690:4: R0914: Too many local variables (16/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1762:19: R1716: Simplify chained comparison between the operands (chained-comparison)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1690:4: R0912: Too many branches (21/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1690:4: R0915: Too many statements (57/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1870:4: R0913: Too many arguments (9/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1870:4: R0917: Too many positional arguments (9/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1900:4: R0914: Too many local variables (33/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1970:16: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1977:16: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2009:20: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1900:4: R0912: Too many branches (41/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:1900:4: R0915: Too many statements (84/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2132:4: R0914: Too many local variables (31/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2132:4: R0912: Too many branches (37/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2132:4: R0915: Too many statements (78/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2344:0: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2350:84: W0108: Lambda may not be necessary (unnecessary-lambda)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2362:0: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2362:0: R0902: Too many instance attributes (8/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2368:84: W0108: Lambda may not be necessary (unnecessary-lambda)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2446:4: R0913: Too many arguments (11/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2446:4: R0917: Too many positional arguments (11/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2518:4: R0914: Too many local variables (21/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2518:4: R0912: Too many branches (23/12) (too-many-branches)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2518:4: R0915: Too many statements (68/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2554:12: W0612: Unused variable 'not_blank' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2586:16: W0612: Unused variable 'd_v' (unused-variable)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2720:4: R0913: Too many arguments (12/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2720:4: R0917: Too many positional arguments (12/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_greedy_decoding.py:2824:8: W0613: Unused argument 'device' (unused-argument)
************* Module nemo.collections.asr.parts.submodules.rnnt_loop_labels_computer
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:54:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:63:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:64:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:65:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:67:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:68:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:70:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:74:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:75:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:119:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:195:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:246:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:263:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:280:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:325:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:329:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:345:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:364:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:379:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:389:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:396:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:404:0: C0301: Line too long (115/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:406:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:430:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:472:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:473:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:520:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:521:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:555:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:574:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:612:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:628:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:636:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:645:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:655:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:664:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:671:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:677:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:682:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:687:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:696:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:702:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:703:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:712:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:734:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:750:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:752:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:753:0: C0301: Line too long (116/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:757:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:763:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:775:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:794:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:796:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:797:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:798:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:806:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:816:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:851:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:852:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:853:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:861:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:876:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:877:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:890:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:892:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:902:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:1:0: C0114: Missing module docstring (missing-module-docstring)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:18:0: E0401: Unable to import 'numpy' (import-error)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:19:0: E0401: Unable to import 'torch' (import-error)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:20:0: E0401: Unable to import 'torch.nn.functional' (import-error)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:21:0: E0401: Unable to import 'omegaconf' (import-error)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:43:0: R0902: Too many instance attributes (25/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:84:4: R0913: Too many arguments (10/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:84:4: R0917: Too many positional arguments (10/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:43:0: R0903: Too few public methods (1/2) (too-few-public-methods)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:232:8: C0103: Attribute name "_SOS" doesn't conform to snake_case naming style (invalid-name)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:179:0: R0902: Too many instance attributes (12/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:192:4: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:202:4: R0913: Too many arguments (9/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:202:4: R0917: Too many positional arguments (9/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:294:4: R0914: Too many local variables (31/15) (too-many-locals)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:294:4: R0915: Too many statements (57/50) (too-many-statements)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:593:8: W0613: Unused argument 'encoder_output_length' (unused-argument)
nemo/collections/asr/parts/submodules/rnnt_loop_labels_computer.py:902:28: W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
************* Module nemo.collections.asr.parts.submodules.tdt_loop_labels_computer
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:57:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:66:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:67:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:68:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:70:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:71:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:73:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:77:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:78:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:112:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:124:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:201:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:232:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:233:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:274:0: C0301: Line too long (119/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:291:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:308:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:344:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:348:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:369:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:388:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:405:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:419:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:422:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:430:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:440:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:448:0: C0301: Line too long (115/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:450:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:478:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:481:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:489:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:539:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:540:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:587:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:588:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:622:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:641:0: C0301: Line too long (110/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:681:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:697:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:705:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:714:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:724:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:733:0: C0301: Line too long (113/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:740:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:747:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:752:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:756:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:767:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:772:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:773:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:784:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:806:0: C0301: Line too long (108/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:822:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:824:0: C0301: Line too long (104/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:825:0: C0301: Line too long (116/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:829:0: C0301: Line too long (111/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:835:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:844:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:849:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:867:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:870:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:887:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:889:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:890:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:891:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:899:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:909:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:938:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:941:0: C0301: Line too long (102/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:969:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:970:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:971:0: C0301: Line too long (101/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:979:0: C0301: Line too long (106/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:994:0: C0301: Line too long (103/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:995:0: C0301: Line too long (109/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1008:0: C0301: Line too long (107/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1010:0: C0301: Line too long (105/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1020:0: C0301: Line too long (114/100) (line-too-long)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1:0: C0302: Too many lines in module (1026/1000) (too-many-lines)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1:0: C0114: Missing module docstring (missing-module-docstring)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:19:0: E0401: Unable to import 'numpy' (import-error)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:20:0: E0401: Unable to import 'torch' (import-error)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:21:0: E0401: Unable to import 'torch.nn.functional' (import-error)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:22:0: E0401: Unable to import 'omegaconf' (import-error)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:44:0: R0902: Too many instance attributes (26/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:87:4: R0913: Too many arguments (11/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:87:4: R0917: Too many positional arguments (11/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:44:0: R0903: Too few public methods (1/2) (too-few-public-methods)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:248:8: C0103: Attribute name "_SOS" doesn't conform to snake_case naming style (invalid-name)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:185:0: R0902: Too many instance attributes (15/7) (too-many-instance-attributes)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:198:4: C0115: Missing class docstring (missing-class-docstring)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:208:4: R0913: Too many arguments (12/5) (too-many-arguments)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:208:4: R0917: Too many positional arguments (12/5) (too-many-positional-arguments)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:313:4: R0914: Too many local variables (35/15) (too-many-locals)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:313:4: R0915: Too many statements (65/50) (too-many-statements)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:660:8: W0613: Unused argument 'encoder_output_length' (unused-argument)
nemo/collections/asr/parts/submodules/tdt_loop_labels_computer.py:1020:28: W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
************* Module nemo.collections.common.parts.optional_cuda_graphs
nemo/collections/common/parts/optional_cuda_graphs.py:53:0: C0301: Line too long (118/100) (line-too-long)
nemo/collections/common/parts/optional_cuda_graphs.py:79:0: C0301: Line too long (117/100) (line-too-long)
nemo/collections/common/parts/optional_cuda_graphs.py:83:0: C0301: Line too long (112/100) (line-too-long)
nemo/collections/common/parts/optional_cuda_graphs.py:88:0: C0301: Line too long (115/100) (line-too-long)
nemo/collections/common/parts/optional_cuda_graphs.py:1:0: C0114: Missing module docstring (missing-module-docstring)
nemo/collections/common/parts/optional_cuda_graphs.py:18:0: R0402: Use 'from torch import nn' instead (consider-using-from-import)
nemo/collections/common/parts/optional_cuda_graphs.py:18:0: E0401: Unable to import 'torch.nn' (import-error)
************* Module tests.collections.common.test_optional_cuda_graphs
tests/collections/common/test_optional_cuda_graphs.py:1:0: C0114: Missing module docstring (missing-module-docstring)
tests/collections/common/test_optional_cuda_graphs.py:16:0: R0402: Use 'from torch import nn' instead (consider-using-from-import)
tests/collections/common/test_optional_cuda_graphs.py:16:0: E0401: Unable to import 'torch.nn' (import-error)
tests/collections/common/test_optional_cuda_graphs.py:21:0: C0115: Missing class docstring (missing-class-docstring)
tests/collections/common/test_optional_cuda_graphs.py:35:0: C0115: Missing class docstring (missing-class-docstring)
tests/collections/common/test_optional_cuda_graphs.py:40:4: C0116: Missing function or method docstring (missing-function-docstring)
tests/collections/common/test_optional_cuda_graphs.py:44:0: C0115: Missing class docstring (missing-class-docstring)
tests/collections/common/test_optional_cuda_graphs.py:50:4: C0116: Missing function or method docstring (missing-function-docstring)
tests/collections/common/test_optional_cuda_graphs.py:44:0: R0903: Too few public methods (1/2) (too-few-public-methods)
tests/collections/common/test_optional_cuda_graphs.py:54:0: C0115: Missing class docstring (missing-class-docstring)
tests/collections/common/test_optional_cuda_graphs.py:55:4: C0116: Missing function or method docstring (missing-function-docstring)
tests/collections/common/test_optional_cuda_graphs.py:63:4: C0116: Missing function or method docstring (missing-function-docstring)
tests/collections/common/test_optional_cuda_graphs.py:1:0: R0801: Similar lines in 2 files
==nemo.collections.asr.parts.submodules.rnnt_loop_labels_computer:[467:606]
==nemo.collections.asr.parts.submodules.tdt_loop_labels_computer:[534:673]
                )

            # stage 4: to avoid looping, go to next frame after max_symbols emission
            if self.max_symbols is not None:
                # if labels are non-blank (not end-of-utterance), check that last observed timestep with label:
                # if it is equal to the current time index, and number of observations is >= max_symbols, force blank
                force_blank_mask = torch.logical_and(
                    active_mask,
                    torch.logical_and(
                        torch.logical_and(
                            labels != self._blank_index,
                            batched_hyps.last_timestep_lasts >= self.max_symbols,
                        ),
                        batched_hyps.last_timestep == time_indices,
                    ),
                )
                time_indices += force_blank_mask  # emit blank => advance time indices
                # update safe_time_indices, non-blocking
                torch.minimum(time_indices, last_timesteps, out=safe_time_indices)
                # same as: active_mask = time_indices < encoder_output_length
                torch.less(time_indices, encoder_output_length, out=active_mask)
        if use_alignments:
            return batched_hyps, alignments, last_decoder_state
        return batched_hyps, None, last_decoder_state

    def loop_labels_cuda_graphs(
        self,
        encoder_output: torch.Tensor,
        encoder_output_length: torch.Tensor,
    ) -> Tuple[rnnt_utils.BatchedHyps, Optional[rnnt_utils.BatchedAlignments], Any]:
        """
        Implementation with CUDA graphs.

        Args:
            encoder_output: output from the encoder
            encoder_output_length: lengths of the utterances in `encoder_output`
        """
        assert self.cuda_graphs_mode is not None

        # do not recalculate joint projection, project only once
        encoder_output = self.joint.project_encoder(encoder_output)
        current_batch_size = encoder_output.shape[0]
        current_max_time = encoder_output.shape[1]

        if torch.is_autocast_enabled():
            encoder_output = encoder_output.to(torch.get_autocast_gpu_dtype())

        # init or reinit graph
        if self.state is None or self.state.need_reinit(encoder_output):
            self._graph_reinitialize(encoder_output, encoder_output_length)

        # copy (projected) encoder output and lenghts
        self.state.encoder_output_projected[:current_batch_size, :current_max_time, ...].copy_(encoder_output)
        self.state.encoder_output_length[: encoder_output_length.shape[0]].copy_(encoder_output_length)
        # set length to zero for elements outside the current batch
        self.state.encoder_output_length[current_batch_size:].fill_(0)
        if self.cuda_graphs_mode is self.CudaGraphsMode.FULL_GRAPH:
            self.full_graph.replay()
        elif self.cuda_graphs_mode is self.CudaGraphsMode.NO_WHILE_LOOPS:
            self.separate_graphs.before_outer_loop.replay()
            while self.state.active_mask_any.item():
                self.separate_graphs.before_inner_loop.replay()
                while self.state.advance_mask_any.item():
                    self.separate_graphs.inner_loop_code.replay()
                self.separate_graphs.after_inner_loop.replay()
        elif self.cuda_graphs_mode is self.CudaGraphsMode.NO_GRAPHS:
            # this mode is only for testing purposes
            # manual loop instead of using graphs
            self._before_outer_loop()
            while self.state.active_mask_any.item():
                self._before_inner_loop_get_decoder_output()
                self._before_inner_loop_get_joint_output()
                while self.state.advance_mask_any.item():
                    self._inner_loop_code()
                self._after_inner_loop()
        else:
            raise NotImplementedError(f"Unknown graph mode: {self.cuda_graphs_mode}")

        return (
            self.state.batched_hyps,
            self.state.alignments,
            self.state.last_decoder_state,
        )

    @classmethod
    def _create_outer_while_loop_kernel(cls):
        """
        Creates a kernel that evaluates whether to enter the outer loop body (not all hypotheses are decoded).
        Condition: while(active_mask_any).
        """
        kernel_string = r"""\
        typedef ...*[Comment body truncated]*

Copy link
Contributor

This PR is stale because it has been open for 14 days with no activity. Remove stale label or comment or update or this will be closed in 7 days.

@github-actions github-actions bot added the stale label Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

fastconformer hybrid recipe reports strange val_WER with nemo:24.07 and nemo:dev
1 participant