feat: support PyTorch mps backend on macOS #146
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.
This PR adds PyTorch's mps (Metal Performance Shaders) backend support on macOS systems, which improves performance from ~1 it/s (pure CPU) to ~7 it/s on Apple M4 chips.
Note that in
warplayer.py
, mps backend does not supportpadding_mode='border'
intorch.nn.functional.grid_sample
function. Switching topadding_mode='zero'
while clampinggrid
to(-1,1)
does the trick. They should produce the same result.Because some files in
train_log
/train_log_SAFA
also need to be changed, I removed train_log exclusion from.gitignore
and added files from RIFE_v4.26 and SAFA_v0.5. If they should be placed else where, please let me know.Tested on my Mac mini M4 with a 1280x720 video, it works well.