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

Implementation plan #10

Closed
1 of 2 tasks
Yeongtae opened this issue Oct 30, 2018 · 7 comments
Closed
1 of 2 tasks

Implementation plan #10

Yeongtae opened this issue Oct 30, 2018 · 7 comments

Comments

@Yeongtae
Copy link
Contributor

Yeongtae commented Oct 30, 2018

Data feeding

  • [ ] using parameters in hparam.py to reduce independent parameters (3rd)
  • [ ] muLaw quantization to preserve more important information (4th)

Model

  • modifying the wavernn model to reduce matrix multiflications (1st, ~ 11.04) (Fail)
  • test half precision and holding on network parameters on half precision register. (extended 1st, ~11.11 11.14)
  • [ ] weight sparsification to reduce computation times (2nd, ~11.16)
@m-toman
Copy link
Owner

m-toman commented Oct 30, 2018

Thanks.
I've updated to the latest version of Tacotron-2 and forked this version. Currently training the LJ taco model.

@bjtommychen
Copy link

Thanks you both. I am looking forward to your progress.

@Yeongtae
Copy link
Contributor Author

Yeongtae commented Nov 2, 2018

Intro

WaveRNN use GRU operation optimization techniques.
To figure out efficiency of operation optimization, I had completed the GRU opreation optimization experiment.

I had compared Pythorch's built-in GRU module with self implementation of GRU operation optimization

Experimental setup

I made a simple two-dimensional coordinate prediction problem, f(x_i) = y = x_(i+1),
The dataset was generated by using r x rotationmatrix(theta).[1, 0 ]^T.
image
Device: k80 GPU

Implementation

Built-in GRU module
image
Self implementation of original GRU
image
Self implementation of GRU operation optimization
image

Experimental result

I performed full batch inferences, 10000 times each.

Built-in GRU module: 6.02 seconds
Self implementation of original GRU: 16.0 seconds
Self implementation of GRU operation optimization: 9.70 seconds

The pytorch build-in GRU module is well optimized.
Because it use cudnn_gru,
image
check rossumai/OCkRE#2

Conclusion

In my opinion, it's faster to use built-in GRU in pytorch.

@m-toman
Copy link
Owner

m-toman commented Nov 5, 2018

Thanks for the experiment. Unfortunately I'm in hospital and couldn't continue to integrate the original wavernn implementation for now, but it's still on my agenda.

@Yeongtae
Copy link
Contributor Author

Yeongtae commented Dec 6, 2018

I'm trying to use faster wave generator, which is waveglow.
Sorry about stopping implementation.

@m-toman
Copy link
Owner

m-toman commented Dec 6, 2018

Perhaps this post is interesting for you: mozilla/TTS#9 (comment)
I'm generally still watching the Mozilla TTS repo to check their progress with WaveRNN.

@m-toman
Copy link
Owner

m-toman commented Dec 20, 2018

I'll close this for now.

@m-toman m-toman closed this as completed Dec 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants