Repository navigation
feat(gpu): add guarded Linux AMD RDNA3/RDNA4 support - #132
Closed
jenerestain wants to merge 2 commits into
Closed
jenerestain wants to merge 2 commits into
jenerestain wants to merge 2 commits into
Conversation
Contributor
Author
|
Closing at the author's request so APU support and validation on a Radeon 780M can be completed before resubmitting AMD support. |
9 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add experimental Linux discrete AMD RDNA3/RDNA4 support using the existing
gpu.Probecontract. APUs/UMA, other AMD generations, and AMD Windows are explicitly excluded.--gpu-backend auto|nvidia|amdto daemon/service selection and the swap benchmark. Preserve NVIDIA's existing probes and optional streaming; refuse ambiguous automatic selection.contrib/amd/README.md.Validation
The unchanged starting tree passed the same baseline checks. Final implementation checked with Go 1.27.1 and the repository's exact linter version:
go build ./... && test -z "$(gofmt -l .)" && go vet ./... && go test ./...go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0 run ./...— 0 issuesGOOS=windows go build ./... && GOOS=windows go vet ./...go test -race ./internal/gpu ./internal/broker ./internal/cliThe live test used sequential 64 MiB buffers, its own daemon/socket/config, and no installed service. Initial and final driver usage matched exactly at 41,657,159,680 bytes. Existing workload process identities and measured memory were unchanged; the 780M was excluded. The event trace confirmed
lease.freedfor the first child beforelease.grantedfor the second.Explicit limits / follow-up gates
Integration with current main
Merged upstream main through edc6cd9 without rebasing/force-pushing. Preserved its documentation split and VFIO hold/probe-suppression behavior, and added a guarded-AMD VFIO recovery regression. The combined tree passed the isolated W7900 allocation/drain/handoff check again. In this later run, existing workloads continued with the same process identities while one workload's allocations changed; the unattributed driver baseline returned to its original value and both test children exited. The unchanged-total figure above refers to the earlier stable-background runs, not a promise that other workloads stop allocating.
The existing VFIO command remains NVIDIA-specific; AMD VFIO CLI support and physical passthrough validation are not included.
All local checks above passed again on the integrated tree. GitHub's CI and docs workflows currently report
action_requiredwith no jobs started for this fork PR; maintainer approval is needed before upstream CI, including native Windows tests, can be confirmed green. No merge is requested until that gate passes.