This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/SI: Improve MachineSchedModel definition
ClosedPublic

Authored by tstellarAMD on Mar 24 2016, 9:37 AM.

Details

Summary

This patch contains a few improvements to the model, including:

  • Using a single resource with a defined buffers size for each memory unit.
  • Setting the IssueWidth correctly.
  • Fixing latency values for memory instructions.

shader-db stats:

16429 shaders in 3231 tests
Totals:
SGPRS: 318232 -> 312328 (-1.86 %)
VGPRS: 208996 -> 209346 (0.17 %)
Code Size: 7147044 -> 7166440 (0.27 %) bytes
LDS: 83 -> 83 (0.00 %) blocks
Scratch: 1862656 -> 1459200 (-21.66 %) bytes per wave
Max Waves: 49182 -> 49243 (0.12 %)
Wait states: 0 -> 0 (0.00 %)

Depends on D18451
Depends on D18452

Diff Detail

Repository
rL LLVM

Event Timeline

tstellarAMD retitled this revision from to AMDGPU/SI: Improve MachineSchedModel definition.
tstellarAMD updated this object.
tstellarAMD added reviewers: nhaehnle, arsenm.
tstellarAMD added a subscriber: llvm-commits.
arsenm added inline comments.Mar 24 2016, 9:40 AM
lib/Target/AMDGPU/SISchedule.td
43 ↗(On Diff #51567)

Is there much more to do to complete the model?

50 ↗(On Diff #51567)

Is this comment still needed?

test/CodeGen/AMDGPU/udivrem.ll
110 ↗(On Diff #51567)

Grammar: "tests checks"

lib/Target/AMDGPU/SISchedule.td
43 ↗(On Diff #51567)

We need to add scheduler information for the generic COPY instruction. Maybe a few other things too.

50 ↗(On Diff #51567)

Yes, I'm still not sure about this.

arsenm accepted this revision.Mar 29 2016, 9:34 AM
arsenm edited edge metadata.

LGTM

This revision is now accepted and ready to land.Mar 29 2016, 9:34 AM
This revision was automatically updated to reflect the committed changes.