-
Notifications
You must be signed in to change notification settings - Fork 124
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
Reduced CUDA dropout memory usage #1005
Conversation
…n number." This reverts commit 9a29b52.
Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
ForwardRate(1.f - rate), | ||
IsSpatial(isSpatial), | ||
IsBatchwise(isBatchwise), | ||
seed(seed) {}; |
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.
minor codestyle
No need for ;
. The empty body should be located on a new line.
But it's your choice whether to write it like
seed(seed)
{}
or
seed(seed)
{
}
@@ -35,4 +35,19 @@ struct CMathEngineDropoutDesc : public CDropoutDesc { | |||
CFloatHandleVar Mask; | |||
}; | |||
|
|||
// DropoutDesc without mask for usage on CUDA | |||
struct CCudaMathEngineDropoutDesc : public CDropoutDesc { |
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.
This class is for CUDA only. It's better to move somewhere to NeoMathEngine/src/GPU/CUDA/*
.
E.g. in front of its' ctor definition in CudaMathEngineDnnDropout.cu
const unsigned int threshold = forwardRate * UINT_MAX; | ||
int row; | ||
int col; | ||
if (GetCudaTaskIndex2D( firstHeight, ( firstWidth + 3 ) / 4, row, col ) ) { |
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.
minor codestyle
if
and (
must be together.
Spaces inside brackets must be used in the similar approach on both side. But you have if (GetCuda..
on one side with col ) )
on the other.
int obj; | ||
int row; | ||
int col; | ||
if ( GetCudaTaskIndex3D(inputObjectCount, inputObjectSize / maskObjectSize, maskObjectSize, obj, row, col ) ) { |
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.
minor codestyle There should be no space between if
and (
(same rule applies to anything for(
while(
etc.
const int index = row * firstWidth + col; | ||
|
||
CIntArray<4> generated = random.Next(); | ||
for (int j = 0; j < 4 && col + j < firstWidth; ++j) { |
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.
minor codestyle for(
|
||
CIntArray<4> generated = random.Next(); | ||
for (int j = 0; j < 4 && col + j < firstWidth; ++j) { | ||
res[index + j] = (generated[j] <= threshold) ? (first[index + j] / forwardRate ) : 0.f; |
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.
minor codestyle fix spacing around first[index + j] / forwardRate
Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
1bb0f8c
to
fc56af2
Compare
fc56af2
to
7e20f40
Compare
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
* added test to branch Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added rca22824 Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.207.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Counters linux (#1003) * Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * linux couners modified * fixing linux counters * small change * another count change * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * fixed adding flag to perfomancecounter Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * another counting fixing Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for counters linux Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.208.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Reduced CUDA dropout memory usage (#1005) * Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix warp-size iterations in max reducing functions (#1010) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [NeoML] Add min-max gradient clipping (#1009) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix restrict modifier for function arguments (#1011) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Fix CImageToPixelLayer::SetImageHeight/Width (#1012) Signed-off-by: Valerii Fediunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.209.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix shared buffers initializations and expf calls (#1004) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * update fineobj to 15 47 (#1013) * update fineobj to 15 47 Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Upgrade NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Call set_global_variables before include(FineInstall) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove unused variable Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Fix protobuf compilation errors on Darwin Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove invalid unicode symbols from copyright (+update) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove unused variable Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Update NeoMLTest version Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Switch to next NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Update NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> --------- Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.210.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Fix iOS CMake toolchain for newer versions of CMake (#1016) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [NeoML] Transfer CDnnBlob data in threads pools (#1014) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * boost problem fixed Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: Valerii Fediunin <valery.fedyunin@abbyy.com> Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Co-authored-by: buildtech <buildtech@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Co-authored-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: NeoML-maintainer <65914319+NeoML-maintainer@users.noreply.github.com>
* added test to branch Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added rca22824 Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.207.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Counters linux (neoml-lib#1003) * Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * linux couners modified * fixing linux counters * small change * another count change * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for linux counter perfomance Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * fixed adding flag to perfomancecounter Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * another counting fixing Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * added flag for counters linux Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.208.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Reduced CUDA dropout memory usage (neoml-lib#1005) * Revert "Build Framework (NeoML-master 2.0.204.0): Incrementing version number." This reverts commit 9a29b52. * added test to branch * added rca22824 * started * revert some changes * added some new * reducing dropout memory usage on cuda Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * design changes have been made Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix warp-size iterations in max reducing functions (neoml-lib#1010) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [NeoML] Add min-max gradient clipping (neoml-lib#1009) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix restrict modifier for function arguments (neoml-lib#1011) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Fix CImageToPixelLayer::SetImageHeight/Width (neoml-lib#1012) Signed-off-by: Valerii Fediunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.209.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [CudaMathEngine] Fix shared buffers initializations and expf calls (neoml-lib#1004) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * update fineobj to 15 47 (neoml-lib#1013) * update fineobj to 15 47 Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Upgrade NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Call set_global_variables before include(FineInstall) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove unused variable Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Fix protobuf compilation errors on Darwin Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove invalid unicode symbols from copyright (+update) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Remove unused variable Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Update NeoMLTest version Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Switch to next NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> * Update NeoMLTest Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> --------- Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Build Framework (NeoML-master 2.0.210.0): Incrementing version number. Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * Fix iOS CMake toolchain for newer versions of CMake (neoml-lib#1016) Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * [NeoML] Transfer CDnnBlob data in threads pools (neoml-lib#1014) Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> * boost problem fixed Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> --------- Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com> Signed-off-by: Kirill Golikov <kirill.golikov@abbyy.com> Signed-off-by: Valerii Fediunin <valery.fedyunin@abbyy.com> Signed-off-by: Valery Fedyunin <valery.fedyunin@abbyy.com> Co-authored-by: buildtech <buildtech@abbyy.com> Co-authored-by: daniyalaliev <daniial.aliev@abbyy.com> Co-authored-by: Valeriy Fedyunin <valery.fedyunin@abbyy.com> Co-authored-by: Kirill Golikov <kirill.golikov@abbyy.com> Co-authored-by: NeoML-maintainer <65914319+NeoML-maintainer@users.noreply.github.com> Signed-off-by: daniyalaliev <daniial.aliev@abbyy.com>
Now CUDA accepts only seed to randomly drop matrix elements without spending memory on mask storage