Skip to content
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

[iOS GPU] Implement view and reshape in metal shaders #54107

Closed
wants to merge 3 commits into from

Conversation

xta0
Copy link
Contributor

@xta0 xta0 commented Mar 16, 2021

Stack from ghstack:

The current implementation doesn't change the underlying texture's shape. This diff converts MPSImage from one shape to the other. The way we'll do it is we implement this as an elementwise kernel. We have a thread grid of size (N2, C2, H2, W2) with a thread for each output element, and we compute the "linear index" of the output element, and convert it to the equivalent "linear index" of the input element. This is the known as sub2ind/ind2sub conversion in MATLAB, ravel_multi_index in numpy, etc. https://github.com/cupy/cupy/blob/a08841a8e18d285652df0f7a2a25f5ae5bc1a897/cupy/indexing/generate.py#L301-L304 is a clean generic version of ind2sub.

Differential Revision: D27074719

The current implementation doesn't change the underlying texture's shape. This diff converts MPSImage from one shape to the other. The way we'll do it is we implement this as an elementwise kernel. We have a thread grid of size (N2, C2, H2, W2) with a thread for each output element, and we compute the "linear index" of the output element, and convert it to the equivalent "linear index" of the input element. This is the known as sub2ind/ind2sub conversion in MATLAB, ravel_multi_index in numpy, etc. https://github.com/cupy/cupy/blob/a08841a8e18d285652df0f7a2a25f5ae5bc1a897/cupy/indexing/generate.py#L301-L304 is a clean generic version of ind2sub.

Differential Revision: [D27074719](https://our.internmc.facebook.com/intern/diff/D27074719/)

[ghstack-poisoned]
@facebook-github-bot
Copy link
Contributor

facebook-github-bot commented Mar 16, 2021

💊 CI failures summary and remediations

As of commit e202f56 (more details on the Dr. CI page):


  • 1/1 failures possibly* introduced in this PR
    • 1/1 non-scanned failure(s)

This comment was automatically generated by Dr. CI (expand for details).Follow this link to opt-out of these comments for your Pull Requests.

Please report bugs/suggestions to the (internal) Dr. CI Users group.

The current implementation doesn't change the underlying texture's shape. This diff converts MPSImage from one shape to the other. The way we'll do it is we implement this as an elementwise kernel. We have a thread grid of size (N2, C2, H2, W2) with a thread for each output element, and we compute the "linear index" of the output element, and convert it to the equivalent "linear index" of the input element. This is the known as sub2ind/ind2sub conversion in MATLAB, ravel_multi_index in numpy, etc. https://github.com/cupy/cupy/blob/a08841a8e18d285652df0f7a2a25f5ae5bc1a897/cupy/indexing/generate.py#L301-L304 is a clean generic version of ind2sub.

Differential Revision: [D27074719](https://our.internmc.facebook.com/intern/diff/D27074719/)

[ghstack-poisoned]
The current implementation doesn't change the underlying texture's shape. This diff converts MPSImage from one shape to the other. The way we'll do it is we implement this as an elementwise kernel. We have a thread grid of size (N2, C2, H2, W2) with a thread for each output element, and we compute the "linear index" of the output element, and convert it to the equivalent "linear index" of the input element. This is the known as sub2ind/ind2sub conversion in MATLAB, ravel_multi_index in numpy, etc. https://github.com/cupy/cupy/blob/a08841a8e18d285652df0f7a2a25f5ae5bc1a897/cupy/indexing/generate.py#L301-L304 is a clean generic version of ind2sub.

Differential Revision: [D27074719](https://our.internmc.facebook.com/intern/diff/D27074719/)

[ghstack-poisoned]
@facebook-github-bot
Copy link
Contributor

This pull request has been merged in e579b39.

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.

3 participants