-
Notifications
You must be signed in to change notification settings - Fork 471
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
[SYSTEMDS-3551] Extended Performance TestSuite #1850
base: main
Are you sure you want to change the base?
Conversation
…DME.md in nn as this is the source for simpleSGD and nesterov
Thanks, @Sheypex for the commit. I will have a look into the changes in a day or two. |
It is a good start @Sheypex.
|
Just fixed my implenentation of the Stats are as follows:
For training simple sgd on next larger data:
|
With respect to the datagen: I've been looking into adding a convolution/deep learning perftest along the lines of the MNIST examples and since we're on the topic of datagen: Using MNIST (or a subset of corresponding size) is probably preferable to generating random data, correct? |
Thanks for the stats. Do not worry about the GPU-related issue. It is fine if you cannot manage to make the GPU work. |
…n and genRandData4Multinomial. now also running tests for sparse and dense data. not yet utilizing generated test data sets
…dataset based on MAXMEM setting, and using whole MNIST only for biggest MAXMEM
target_num_train=$(python -c "from math import floor; print( ${min_num_examples_train} + floor(${span_num_examples_train} * ${percent_size}))") # todo couldn't work out how to do this using bc so using slower python calls instead | ||
target_num_test=$(python -c "from math import floor; print( ${min_num_examples_test} + floor(${span_num_examples_test} * ${percent_size}))") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend not to inline Python calls here. You can find another way or push some of the logic inside the dml script.
As far as i can tell, the perftest for conv2d (that in turn uses the mnist lenet implementation) is done now .. however I'm getting an error in the lenet implementation
I've been staring at the source of the lenet implementation in nn/examples for some time now, but I can't pinpoint the actual problem.. I'm guessing the sizes of the softmax output and the probs buffer may be mismatched? (lines 279-282 in nn/examples/mnist_lenet.dml)
Any idea perhaps on how to fix this? |
Could you run it again, with a '-debug' argument. |
Im on JDK 17
-debug yields this
|
SystemDS is not tested for JDK 17. Our official support version is 11. |
Ok, tested on Java 11. |
Glad that worked. |
Overall summary: Datagen
Perftests
Miscellaneous
|
Great. Thanks @Sheypex, for your contribution. 👍🏽 |
[SYSTEMDS-3551] Extended performance testsuite
This contains new
.dml
and.sh
scripts to include perftests for some of the components inscripts/nn
.As a start, 2 perftests for a simple SGD trained regression neural network and a neural network classifier trained while using Nesterov momentum as described in the
scripts/nn/README.md
were added.(Incidentally also resolved a bug with the batching of training samples in both of these examples in the readme.)
Additionally, a semi-broken perftest for
staging/NCF.dml
is included. As far as I am aware, the perfest scripts are fine (though currently untested) but the implementation of NCF in staging crashes on launch due to yet undetermined cause.The general structure of the new tests follows observed standards of presently implemented perftests:
scripts/datagen
houses individual.dml
scripts for data generationscripts/perftest/datagen
contains.sh
scripts that wrap these.dml
scripts and designate parameters for the generation based on required file sizesscripts/perftest/scripts
houses.dml
scripts that implement the workload that is to be testedscripts/perftest
contains.sh
scripts to run individual or all perftests pertaining to a designated type of componentCurrently, the parameters in the datagen scripts fail to meet the expected output sizes of 80MB, 800MB etc.
Their output is currently too small.
The
.sh
scripts for the neural network components test various input sizes as given by theMAXMEM
variable inrunAll.sh
like other perftests and additionally perform individual tests both with a base number of epochs as well as ten times that many epochs eg. 5 and 50 epochs. This seems appropriate since the number of epochs in neural network training is a shorthand parameter for the maximum amount of individual training iterations.Finally,
runAll.sh
contains a flag to enable/disable the execution of neural network perftests as well as a flag to toggle the use of the gpu in these tests.