KEMBAR78
Add OptimType.NONE in SplitTBE (defuse bwd and optim) by sryap · Pull Request #1819 · pytorch/FBGEMM · GitHub
Skip to content

Conversation

@sryap
Copy link
Contributor

@sryap sryap commented Jun 10, 2023

Summary:
This diff is the backend part

This diff introduces OptimType.NONE. Unlike other OptimTypes,
OptimType.NONE does not perform the optimizer step during SplitTBE's
backward pass. With OptimType.NONE, SplitTBE deduplicates output
gradients in the backward pass and generates a sparse gradient tensor
(PyTorch's sparse_coo_tensor) for the device's weight (FQN:
weights_dev).

Currently, OptimType.NONE only supports the case where the embedding
dimensions of all embedding tables are identical.

Differential Revision: D44392172

@netlify
Copy link

netlify bot commented Jun 10, 2023

Deploy Preview for pytorch-fbgemm-docs canceled.

Name Link
🔨 Latest commit e14b055
🔍 Latest deploy log https://app.netlify.com/sites/pytorch-fbgemm-docs/deploys/6487497a3a197d0009bb3bec

@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44392172

sryap added a commit to sryap/FBGEMM that referenced this pull request Jun 12, 2023
Summary:
Pull Request resolved: pytorch#1819

This diff is the **backend** part

This diff introduces `OptimType.NONE`.  Unlike other `OptimType`s,
`OptimType.NONE` does not perform the optimizer step during SplitTBE's
backward pass.  With `OptimType.NONE`, SplitTBE deduplicates output
gradients in the backward pass and generates a sparse gradient tensor
(PyTorch's `sparse_coo_tensor`) for the device's weight (FQN:
`weights_dev`).

Currently, `OptimType.NONE` only supports the case where the embedding
dimensions of all embedding tables are identical.

Differential Revision: D44392172

fbshipit-source-id: b1264e5a5032ebad051d5c5b739dd9ffec1d8a92
@sryap sryap force-pushed the export-D44392172 branch from bee6400 to 91ecd67 Compare June 12, 2023 04:11
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44392172

sryap added a commit to sryap/FBGEMM that referenced this pull request Jun 12, 2023
Summary:
Pull Request resolved: pytorch#1819

This diff is the **backend** part

This diff introduces `OptimType.NONE`.  Unlike other `OptimType`s,
`OptimType.NONE` does not perform the optimizer step during SplitTBE's
backward pass.  With `OptimType.NONE`, SplitTBE deduplicates output
gradients in the backward pass and generates a sparse gradient tensor
(PyTorch's `sparse_coo_tensor`) for the device's weight (FQN:
`weights_dev`).

Currently, `OptimType.NONE` only supports the case where the embedding
dimensions of all embedding tables are identical.

Differential Revision: D44392172

fbshipit-source-id: e01cd97b9ea0aab2e0f7004e2323d98f83751099
@sryap sryap force-pushed the export-D44392172 branch from 91ecd67 to 740b6bd Compare June 12, 2023 04:20
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44392172

sryap added a commit to sryap/FBGEMM that referenced this pull request Jun 12, 2023
Summary:
Pull Request resolved: pytorch#1819

This diff is the **backend** part

This diff introduces `OptimType.NONE`.  Unlike other `OptimType`s,
`OptimType.NONE` does not perform the optimizer step during SplitTBE's
backward pass.  With `OptimType.NONE`, SplitTBE deduplicates output
gradients in the backward pass and generates a sparse gradient tensor
(PyTorch's `sparse_coo_tensor`) for the device's weight (FQN:
`weights_dev`).

Currently, `OptimType.NONE` only supports the case where the embedding
dimensions of all embedding tables are identical.

Differential Revision: D44392172

fbshipit-source-id: d62b11a29ab221c3a706f57a2ed146cc5c624096
@sryap sryap force-pushed the export-D44392172 branch from 740b6bd to 29742c1 Compare June 12, 2023 16:28
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44392172

Summary:
Pull Request resolved: pytorch#1819

This diff is the **backend** part

This diff introduces `OptimType.NONE`.  Unlike other `OptimType`s,
`OptimType.NONE` does not perform the optimizer step during SplitTBE's
backward pass.  With `OptimType.NONE`, SplitTBE deduplicates output
gradients in the backward pass and generates a sparse gradient tensor
(PyTorch's `sparse_coo_tensor`) for the device's weight (FQN:
`weights_dev`).

Currently, `OptimType.NONE` only supports the case where the embedding
dimensions of all embedding tables are identical.

Differential Revision: D44392172

fbshipit-source-id: 52d746963b772f6ddaada7630cdf4b53d1e71ed3
@sryap sryap force-pushed the export-D44392172 branch from 29742c1 to e14b055 Compare June 12, 2023 16:36
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44392172

@facebook-github-bot
Copy link
Contributor

This pull request has been merged in edc57b1.

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.

2 participants