Control flow

class tests.test.sass.controlflow.test_block.TestBasicBlockView on GitHub

Bases: object

FILE: Final[Path] = PosixPath('/__w/reprospect/reprospect/tests/assets/test_half.cu')
SIGNATURE_INDIVIDUAL: Final[str] = 'pow2_individual(__half *, const __half *, unsigned int)'
SIGNATURE_PACKED: Final[str] = 'pow2_packed(__half *, const __half *, unsigned int)'
cuobjdump(workdir: Path, parameters: Parameters, cmake_file_api: FileAPI) CuObjDumpView on GitHub
class tests.test.sass.controlflow.test_block.TestBasicBlockMatcherView on GitHub

Bases: TestBasicBlock

Tests for reprospect.test.sass.controlflow.block.BasicBlockMatcher.

pytestmark = [Mark(name='parametrize', args=('parameters', (Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.VOLTA: 'VOLTA'>, compute_capability=ComputeCapability(major=7, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.TURING: 'TURING'>, compute_capability=ComputeCapability(major=7, minor=5))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.AMPERE: 'AMPERE'>, compute_capability=ComputeCapability(major=8, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.AMPERE: 'AMPERE'>, compute_capability=ComputeCapability(major=8, minor=6))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.ADA: 'ADA'>, compute_capability=ComputeCapability(major=8, minor=9))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.HOPPER: 'HOPPER'>, compute_capability=ComputeCapability(major=9, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.BLACKWELL: 'BLACKWELL'>, compute_capability=ComputeCapability(major=10, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.BLACKWELL: 'BLACKWELL'>, compute_capability=ComputeCapability(major=12, minor=0))))), kwargs={'ids': <class 'str'>, 'scope': 'class'})]
test_find_individual_and_packed_blocks(parameters: Parameters, cuobjdump: CuObjDump) NoneView on GitHub

Find the “individual” block in TestBasicBlock.SIGNATURE_INDIVIDUAL, and both “individual” and “packed” blocks in TestBasicBlock.SIGNATURE_PACKED.

Built on the observations from:

class tests.test.sass.controlflow.test_block.TestBasicBlockWithParentMatcherView on GitHub

Bases: TestBasicBlock

Tests for reprospect.test.sass.controlflow.block.BasicBlockWithParentMatcher.

pytestmark = [Mark(name='parametrize', args=('parameters', (Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.VOLTA: 'VOLTA'>, compute_capability=ComputeCapability(major=7, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.TURING: 'TURING'>, compute_capability=ComputeCapability(major=7, minor=5))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.AMPERE: 'AMPERE'>, compute_capability=ComputeCapability(major=8, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.AMPERE: 'AMPERE'>, compute_capability=ComputeCapability(major=8, minor=6))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.ADA: 'ADA'>, compute_capability=ComputeCapability(major=8, minor=9))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.HOPPER: 'HOPPER'>, compute_capability=ComputeCapability(major=9, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.BLACKWELL: 'BLACKWELL'>, compute_capability=ComputeCapability(major=10, minor=0))), Parameters(arch=NVIDIAArch(family=<NVIDIAFamily.BLACKWELL: 'BLACKWELL'>, compute_capability=ComputeCapability(major=12, minor=0))))), kwargs={'ids': <class 'str'>, 'scope': 'class'})]
test_find_individual_block(parameters: Parameters, cuobjdump: CuObjDump) NoneView on GitHub

Find the “individual” block in TestBasicBlock.SIGNATURE_INDIVIDUAL, that is the child of a block with an ISETP instruction.