Skip to content

AMDGPU: Handle cvt_scale F32/F16->F4/F8 gfx950 hazard #117844

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

Merged
merged 1 commit into from
Dec 2, 2024

Conversation

arsenm
Copy link
Contributor

@arsenm arsenm commented Nov 27, 2024

gfx950 SP changes doc says:
No 4 clk forwarding on opcodes that convert from
F32/F16->F8 or F32/F16->F4. Must insert a NOP or
instruction writing some other destination VREG
after a conversion to F4/F8 since it writes either
low/high half or bytes.

Co-authored-by: Pravin Jagtap [email protected]
Co-authored-by: Jeffrey Byrnes [email protected]

This was referenced Nov 27, 2024
Copy link
Contributor Author

arsenm commented Nov 27, 2024

This stack of pull requests is managed by Graphite. Learn more about stacking.

@arsenm arsenm force-pushed the users/arsenm/gfx950/match-bitop3 branch from 2758ec2 to ffac062 Compare November 27, 2024 04:47
@arsenm arsenm force-pushed the users/arsenm/gfx950/cvt_scale_hazard branch from 10d9189 to 986bb31 Compare November 27, 2024 04:48
@arsenm arsenm force-pushed the users/arsenm/gfx950/match-bitop3 branch from ffac062 to c609205 Compare November 27, 2024 06:28
Base automatically changed from users/arsenm/gfx950/match-bitop3 to main November 27, 2024 06:31
@arsenm arsenm force-pushed the users/arsenm/gfx950/cvt_scale_hazard branch from 986bb31 to e3cf2d7 Compare November 27, 2024 06:33
gfx950 SP changes doc says:
No 4 clk forwarding on opcodes that convert from
F32/F16->F8 or F32/F16->F4. Must insert a NOP or
instruction writing some other destination VREG
after a conversion to F4/F8 since it writes either
low/high half or bytes.

Co-authored-by: Pravin Jagtap <[email protected]>
Co-authored-by: Jeffrey Byrnes <[email protected]>
Copy link
Contributor Author

arsenm commented Dec 2, 2024

Merge activity

  • Dec 2, 9:21 AM EST: A user started a stack merge that includes this pull request via Graphite.
  • Dec 2, 9:23 AM EST: A user merged this pull request with Graphite.

@arsenm arsenm merged commit 39337ff into main Dec 2, 2024
5 of 7 checks passed
@arsenm arsenm deleted the users/arsenm/gfx950/cvt_scale_hazard branch December 2, 2024 14:23
@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 2, 2024

LLVM Buildbot has detected a new failure on builder libc-x86_64-debian-fullbuild-dbg-asan running on libc-x86_64-debian-fullbuild while building llvm at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/171/builds/11404

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[       OK ] LlvmLibcRemapFilePagesTest.ErrorInvalidAddress (4 us)
Ran 3 tests.  PASS: 3  FAIL: 0
[937/1098] Running unit test libc.test.src.sys.mman.linux.shm_test
[==========] Running 2 tests from 1 test suite.
[ RUN      ] LlvmLibcShmTest.Basic
[       OK ] LlvmLibcShmTest.Basic (112 us)
[ RUN      ] LlvmLibcShmTest.NameConversion
[       OK ] LlvmLibcShmTest.NameConversion (23 us)
Ran 2 tests.  PASS: 2  FAIL: 0
[938/1098] Running unit test libc.test.src.sys.mman.linux.process_mrelease_test
FAILED: projects/libc/test/src/sys/mman/linux/CMakeFiles/libc.test.src.sys.mman.linux.process_mrelease_test /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux/CMakeFiles/libc.test.src.sys.mman.linux.process_mrelease_test 
cd /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux && /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux/libc.test.src.sys.mman.linux.process_mrelease_test.__build__
[==========] Running 3 tests from 1 test suite.
[ RUN      ] LlvmLibcProcessMReleaseTest.NoError
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/llvm-project/libc/test/src/sys/mman/linux/process_mrelease_test.cpp:44: FAILURE
Failed to match LIBC_NAMESPACE::process_mrelease(pidfd, 0) against Succeeds().
Expected return value to be equal to 0 but got -1.
Expected errno to be equal to "Success" but got "No such process".
[  FAILED  ] LlvmLibcProcessMReleaseTest.NoError
[ RUN      ] LlvmLibcProcessMReleaseTest.ErrorNotKilled
[       OK ] LlvmLibcProcessMReleaseTest.ErrorNotKilled (720 us)
[ RUN      ] LlvmLibcProcessMReleaseTest.ErrorNonExistingPidfd
[       OK ] LlvmLibcProcessMReleaseTest.ErrorNonExistingPidfd (15 us)
Ran 3 tests.  PASS: 2  FAIL: 1
[939/1098] Running unit test libc.test.src.sys.mman.linux.mincore_test
[==========] Running 6 tests from 1 test suite.
[ RUN      ] LlvmLibcMincoreTest.UnMappedMemory
[       OK ] LlvmLibcMincoreTest.UnMappedMemory (7 us)
[ RUN      ] LlvmLibcMincoreTest.UnalignedAddr
[       OK ] LlvmLibcMincoreTest.UnalignedAddr (55 us)
[ RUN      ] LlvmLibcMincoreTest.InvalidVec
[       OK ] LlvmLibcMincoreTest.InvalidVec (17 us)
[ RUN      ] LlvmLibcMincoreTest.NoError
[       OK ] LlvmLibcMincoreTest.NoError (13 us)
[ RUN      ] LlvmLibcMincoreTest.NegativeLength
[       OK ] LlvmLibcMincoreTest.NegativeLength (11 us)
[ RUN      ] LlvmLibcMincoreTest.PageOut
[       OK ] LlvmLibcMincoreTest.PageOut (53 us)
Ran 6 tests.  PASS: 6  FAIL: 0
[940/1098] Running unit test libc.test.src.string.memcmp_opt_host_test.__unit__
[==========] Running 6 tests from 1 test suite.
[ RUN      ] LlvmLibcMemcmpTest.CmpZeroByte
[       OK ] LlvmLibcMemcmpTest.CmpZeroByte (5 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsRhsAreTheSame
[       OK ] LlvmLibcMemcmpTest.LhsRhsAreTheSame (3 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsBeforeRhsLexically
[       OK ] LlvmLibcMemcmpTest.LhsBeforeRhsLexically (2 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsAfterRhsLexically
[       OK ] LlvmLibcMemcmpTest.LhsAfterRhsLexically (1 us)
Step 8 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[       OK ] LlvmLibcRemapFilePagesTest.ErrorInvalidAddress (4 us)
Ran 3 tests.  PASS: 3  FAIL: 0
[937/1098] Running unit test libc.test.src.sys.mman.linux.shm_test
[==========] Running 2 tests from 1 test suite.
[ RUN      ] LlvmLibcShmTest.Basic
[       OK ] LlvmLibcShmTest.Basic (112 us)
[ RUN      ] LlvmLibcShmTest.NameConversion
[       OK ] LlvmLibcShmTest.NameConversion (23 us)
Ran 2 tests.  PASS: 2  FAIL: 0
[938/1098] Running unit test libc.test.src.sys.mman.linux.process_mrelease_test
FAILED: projects/libc/test/src/sys/mman/linux/CMakeFiles/libc.test.src.sys.mman.linux.process_mrelease_test /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux/CMakeFiles/libc.test.src.sys.mman.linux.process_mrelease_test 
cd /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux && /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/build/projects/libc/test/src/sys/mman/linux/libc.test.src.sys.mman.linux.process_mrelease_test.__build__
[==========] Running 3 tests from 1 test suite.
[ RUN      ] LlvmLibcProcessMReleaseTest.NoError
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-fullbuild-dbg-asan/llvm-project/libc/test/src/sys/mman/linux/process_mrelease_test.cpp:44: FAILURE
Failed to match LIBC_NAMESPACE::process_mrelease(pidfd, 0) against Succeeds().
Expected return value to be equal to 0 but got -1.
Expected errno to be equal to "Success" but got "No such process".
[  FAILED  ] LlvmLibcProcessMReleaseTest.NoError
[ RUN      ] LlvmLibcProcessMReleaseTest.ErrorNotKilled
[       OK ] LlvmLibcProcessMReleaseTest.ErrorNotKilled (720 us)
[ RUN      ] LlvmLibcProcessMReleaseTest.ErrorNonExistingPidfd
[       OK ] LlvmLibcProcessMReleaseTest.ErrorNonExistingPidfd (15 us)
Ran 3 tests.  PASS: 2  FAIL: 1
[939/1098] Running unit test libc.test.src.sys.mman.linux.mincore_test
[==========] Running 6 tests from 1 test suite.
[ RUN      ] LlvmLibcMincoreTest.UnMappedMemory
[       OK ] LlvmLibcMincoreTest.UnMappedMemory (7 us)
[ RUN      ] LlvmLibcMincoreTest.UnalignedAddr
[       OK ] LlvmLibcMincoreTest.UnalignedAddr (55 us)
[ RUN      ] LlvmLibcMincoreTest.InvalidVec
[       OK ] LlvmLibcMincoreTest.InvalidVec (17 us)
[ RUN      ] LlvmLibcMincoreTest.NoError
[       OK ] LlvmLibcMincoreTest.NoError (13 us)
[ RUN      ] LlvmLibcMincoreTest.NegativeLength
[       OK ] LlvmLibcMincoreTest.NegativeLength (11 us)
[ RUN      ] LlvmLibcMincoreTest.PageOut
[       OK ] LlvmLibcMincoreTest.PageOut (53 us)
Ran 6 tests.  PASS: 6  FAIL: 0
[940/1098] Running unit test libc.test.src.string.memcmp_opt_host_test.__unit__
[==========] Running 6 tests from 1 test suite.
[ RUN      ] LlvmLibcMemcmpTest.CmpZeroByte
[       OK ] LlvmLibcMemcmpTest.CmpZeroByte (5 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsRhsAreTheSame
[       OK ] LlvmLibcMemcmpTest.LhsRhsAreTheSame (3 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsBeforeRhsLexically
[       OK ] LlvmLibcMemcmpTest.LhsBeforeRhsLexically (2 us)
[ RUN      ] LlvmLibcMemcmpTest.LhsAfterRhsLexically
[       OK ] LlvmLibcMemcmpTest.LhsAfterRhsLexically (1 us)

searlmc1 pushed a commit to ROCm/llvm-project that referenced this pull request Feb 3, 2025
gfx950 SP changes doc says:
No 4 clk forwarding on opcodes that convert from
F32/F16->F8 or F32/F16->F4. Must insert a NOP or
instruction writing some other destination VREG
after a conversion to F4/F8 since it writes either
low/high half or bytes.

Co-authored-by: Pravin Jagtap <[email protected]>
Co-authored-by: Jeffrey Byrnes <[email protected]>
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.

5 participants