Skip to content

Commit f038d3d

Browse files
committed
warning fixes for vs 2022
1 parent 107d630 commit f038d3d

11 files changed

+39
-114
lines changed

newton-4.00/sdk/dBrain/gpu/ndBrainGpuContext.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ ndBrainGpuContext::~ndBrainGpuContext()
7676
}
7777
}
7878

79-
for (ndInt32 i = 0; i < sizeof(m_modules) / sizeof(m_modules[0]); ++i)
79+
for (ndInt32 i = 0; i < ndInt32(sizeof(m_modules) / sizeof(m_modules[0])); ++i)
8080
{
8181
if (m_modules[i])
8282
{
@@ -228,7 +228,7 @@ void ndBrainGpuContext::CreateInstance()
228228
ndInt32 extCount = 0;
229229
const char* apiExtensionLayers[32];
230230

231-
for (ndInt32 j = 0; j < sizeof(m_apiExtensionLayers) / sizeof(m_apiExtensionLayers[3]); ++j)
231+
for (ndInt32 j = 0; j < ndInt32(sizeof(m_apiExtensionLayers) / sizeof(m_apiExtensionLayers[3])); ++j)
232232
{
233233
for (ndInt32 i = 0; i < ndInt32(extensionCount); ++i)
234234
{

newton-4.00/sdk/dBrain/gpu/ndBrainTrainerGpu.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ ndBrainTrainerGpu::~ndBrainTrainerGpu()
6161
{
6262
}
6363

64+
void ndBrainTrainerGpu::ApplyLearnRate(ndBrainFloat learnRate)
65+
{
66+
}
67+
6468
void ndBrainTrainerGpu::BackPropagate(const ndBrainVector& outputGradients)
6569
{
6670
//m_context->BeginQueue();

newton-4.00/sdk/dBrain/gpu/ndBrainTrainerGpu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class ndBrainTrainerGpu: public ndBrainTrainnerGpuInference
3434
ndBrainTrainerGpu(const ndBrainTrainerGpu& src);
3535
virtual ~ndBrainTrainerGpu();
3636

37+
virtual void ApplyLearnRate(ndBrainFloat learnRate) override;
3738
virtual void BackPropagate(const ndBrainVector& outputGradients) override;
3839

3940
protected:

newton-4.00/sdk/dBrain/gpu/ndBrainTrainnerGpuInference.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ void ndBrainTrainnerGpuInference::ApplyLearnRate(ndBrainFloat learnRate)
296296

297297
void ndBrainTrainnerGpuInference::UpdateParameters()
298298
{
299-
ndAssert(0);
299+
//ndAssert(0);
300300
}
301301

302302
void ndBrainTrainnerGpuInference::MakePrediction(const ndBrainVector& input)

newton-4.00/sdk/dBrain/ndBrainAgentDeterministicPolicyGradient_Trainer.cpp

Lines changed: 22 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,6 @@ ndBrainAgentDeterministicPolicyGradient_Trainer::ndBrainAgentDeterministicPolicy
260260
:ndBrainThreadPool()
261261
,m_name()
262262
,m_parameters(parameters)
263-
//,m_policy()
264-
//,m_referencePolicy()
265-
//,m_policyTrainers()
266-
//,m_policyOptimizer()
267263
,m_expectedRewards()
268264
,m_miniBatchIndexBuffer()
269265
,m_replayBuffer()
@@ -365,15 +361,12 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::BuildPolicyClass()
365361
policyOptimizer->SetRegularizer(m_parameters.m_policyRegularizer);
366362
policyOptimizer->SetRegularizerType(m_parameters.m_policyRegularizerType);
367363
m_policyTrainer = ndSharedPtr<ndBrainTrainerCpu>(new ndBrainTrainerCpu(policy, policyOptimizer, this, m_parameters.m_miniBatchSize));
368-
369-
ndSharedPtr<ndBrain> referencePolicy(new ndBrain(**policy));
370-
m_referencePolicy = ndSharedPtr<ndBrainTrainerCpuInference>(new ndBrainTrainerCpuInference(referencePolicy, this, m_parameters.m_miniBatchSize));
371364
}
372365

373366
void ndBrainAgentDeterministicPolicyGradient_Trainer::BuildCriticClass()
374367
{
375368
const ndBrain& policy = **m_policyTrainer->GetBrain();
376-
for (ndInt32 k = 0; k < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++k)
369+
for (ndInt32 k = 0; k < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++k)
377370
{
378371
ndFixSizeArray<ndBrainLayer*, 32> layers;
379372

@@ -603,45 +596,13 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::SaveTrajectory()
603596
//#pragma optimize( "", off )
604597
void ndBrainAgentDeterministicPolicyGradient_Trainer::LearnQvalueFunction(ndInt32 criticIndex)
605598
{
606-
//ndInt32 base = 0;
607-
//ndAtomic<ndInt32> iterator(0);
608-
//for (ndInt32 n = m_parameters.m_criticUpdatesCount - 1; n >= 0; --n)
609-
//{
610-
// auto BackPropagateBatch = ndMakeObject::ndFunction([this, &iterator, base, criticIndex](ndInt32, ndInt32)
611-
// {
612-
// ndBrainFixSizeVector<256> criticObservationAction;
613-
// criticObservationAction.SetCount(m_policy.GetOutputSize() + m_policy.GetInputSize());
614-
//
615-
// ndBrainLossLeastSquaredError loss(1);
616-
// ndBrainFixSizeVector<1> groundTruth;
617-
// for (ndInt32 i = iterator++; i < m_parameters.m_miniBatchSize; i = iterator++)
618-
// {
619-
// const ndInt32 index = m_miniBatchIndexBuffer[i + base];
620-
// ndBrainTrainer& trainer = *m_criticTrainers[criticIndex][i];
621-
//
622-
// ndMemCpy(&criticObservationAction[0], m_replayBuffer.GetActions(index), m_policy.GetOutputSize());
623-
// ndMemCpy(&criticObservationAction[m_policy.GetOutputSize()], m_replayBuffer.GetObservations(index), m_policy.GetInputSize());
624-
//
625-
// groundTruth[0] = m_expectedRewards[i + base];
626-
// loss.SetTruth(groundTruth);
627-
// trainer.BackPropagate(criticObservationAction, loss);
628-
// }
629-
// });
630-
//
631-
// iterator = 0;
632-
// ndBrainThreadPool::ParallelExecute(BackPropagateBatch);
633-
// m_criticOptimizer[criticIndex]->Update(this, m_criticTrainers[criticIndex], m_parameters.m_criticLearnRate);
634-
// base += m_parameters.m_miniBatchSize;
635-
//}
636599
const ndBrain& brain = **m_policyTrainer->GetBrain();
637600
ndInt32 criticInputSize = brain.GetInputSize() + brain.GetOutputSize();
638601

639602
m_criticValue.SetCount(m_parameters.m_miniBatchSize);
640603
m_criticGradients.SetCount(m_parameters.m_miniBatchSize);
641604
m_criticObservationActionBatch.SetCount(m_parameters.m_miniBatchSize * criticInputSize);
642605

643-
//ndMemSet((ndInt32*)&m_criticObservationActionBatch[0], ndInt32(0xffffffff), m_criticObservationActionBatch.GetCount());
644-
645606
for (ndInt32 n = 0; n < m_parameters.m_criticUpdatesCount; ++n)
646607
{
647608
for (ndInt32 i = 0; i < m_parameters.m_miniBatchSize; ++i)
@@ -688,62 +649,6 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
688649
m_shuffleBuffer.RandomShuffle(m_shuffleBuffer.GetCount());
689650
}
690651
}
691-
692-
//ndAtomic<ndInt32> iterator(0);
693-
//auto ExpectedRewards = ndMakeObject::ndFunction([this, count, &iterator](ndInt32, ndInt32)
694-
//{
695-
// const ndInt32 batchSize = 128;
696-
// ndBrainFixSizeVector<256> policyEntropyAction;
697-
// ndBrainFixSizeVector<256> criticNextObservationAction;
698-
//
699-
// ndAssert(count % batchSize == 0);
700-
// policyEntropyAction.SetCount(m_policy.GetOutputSize());
701-
// criticNextObservationAction.SetCount(m_policy.GetOutputSize() + m_policy.GetInputSize());
702-
// for (ndInt32 base = iterator.fetch_add(batchSize); base < count; base = iterator.fetch_add(batchSize))
703-
// {
704-
// for (ndInt32 j = 0; j < batchSize; ++j)
705-
// {
706-
// ndBrainFixSizeVector<ND_NUMBER_OF_CRITICS> rewards;
707-
// rewards.SetCount(0);
708-
// const ndInt32 index = m_miniBatchIndexBuffer[j + base];
709-
// ndBrainFloat r = m_replayBuffer.GetReward(index);
710-
// for (ndInt32 i = 0; i < sizeof(m_critic) / sizeof(m_critic[0]); ++i)
711-
// {
712-
// rewards.PushBack(r);
713-
// }
714-
// if (!m_replayBuffer.GetTerminalState(index))
715-
// {
716-
// ndBrainMemVector nextAction(&criticNextObservationAction[0], m_policy.GetOutputSize());
717-
// const ndBrainMemVector nextObservation(m_replayBuffer.GetNextObservations(index), m_policy.GetInputSize());
718-
// m_policy.MakePrediction(nextObservation, nextAction);
719-
// ndMemCpy(&criticNextObservationAction[m_policy.GetOutputSize()], &nextObservation[0], nextObservation.GetCount());
720-
//
721-
// ndBrainFixSizeVector<1> criticQvalue;
722-
// for (ndInt32 i = 0; i < sizeof(m_critic) / sizeof(m_critic[0]); ++i)
723-
// {
724-
// m_referenceCritic[i].MakePrediction(criticNextObservationAction, criticQvalue);
725-
// rewards[i] += m_parameters.m_discountRewardFactor * criticQvalue[0];
726-
// }
727-
// }
728-
//
729-
// ndBrainFloat minQ = ndBrainFloat(1.0e10f);
730-
// for (ndInt32 i = 0; i < sizeof(m_critic) / sizeof(m_critic[0]); ++i)
731-
// {
732-
// minQ = ndMin(minQ, rewards[i]);
733-
// }
734-
//
735-
// // calculate entropy
736-
// if (m_parameters.m_entropyRegularizerCoef > ndBrainFloat(1.0e-6f))
737-
// {
738-
// ndBrainFloat prob = CalculatePolicyProbability(index);
739-
// ndBrainFloat logProb = ndBrainFloat(ndLog(prob));
740-
// minQ -= m_parameters.m_entropyRegularizerCoef * logProb;
741-
// }
742-
// m_expectedRewards[j + base] = minQ;
743-
// }
744-
// }
745-
//});
746-
//ndBrainThreadPool::ParallelExecute(ExpectedRewards);
747652

748653
const ndBrain& brain = **m_policyTrainer->GetBrain();
749654
ndInt32 criticInputSize = brain.GetInputSize() + brain.GetOutputSize();
@@ -752,7 +657,7 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
752657
m_nextActionBatch.SetCount(m_parameters.m_miniBatchSize * brain.GetOutputSize());
753658
m_nextObsevationsBatch.SetCount(m_parameters.m_miniBatchSize * brain.GetInputSize());
754659
m_criticNextObservationActionBatch.SetCount(m_parameters.m_miniBatchSize * criticInputSize);
755-
for (ndInt32 i = 0; i < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++i)
660+
for (ndInt32 i = 0; i < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++i)
756661
{
757662
m_rewardBatch[i].SetCount(m_parameters.m_miniBatchSize);
758663
}
@@ -765,7 +670,7 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
765670

766671
//get the state rewards
767672
ndBrainFloat r = m_replayBuffer.GetReward(index);
768-
for (ndInt32 j = 0; j < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++j)
673+
for (ndInt32 j = 0; j < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++j)
769674
{
770675
m_rewardBatch[j][i] = r;
771676
}
@@ -798,7 +703,7 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
798703
ndMemCpy(&criticNextObservationAction[brain.GetOutputSize()], &nextObsevations[0], brain.GetInputSize());
799704
}
800705

801-
for (ndInt32 i = 0; i < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++i)
706+
for (ndInt32 i = 0; i < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++i)
802707
{
803708
m_referenceCriticTrainer[i]->MakePrediction(m_criticNextObservationActionBatch);
804709
m_referenceCriticTrainer[i]->GetOutput(m_nextQValue);
@@ -815,7 +720,7 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
815720

816721
for (ndInt32 i = 0; i < m_parameters.m_miniBatchSize; ++i)
817722
{
818-
for (ndInt32 j = 1; j < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++j)
723+
for (ndInt32 j = 1; j < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++j)
819724
{
820725
m_rewardBatch[0][i] = ndMin(m_rewardBatch[0][i], m_rewardBatch[j][i]);
821726
}
@@ -836,7 +741,6 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::CalculateExpectedRewards()
836741
//#pragma optimize( "", off )
837742
void ndBrainAgentDeterministicPolicyGradient_Trainer::LearnPolicyFunction()
838743
{
839-
840744
//ndAtomic<ndInt32> iterator(0);
841745
//ndInt32 base = 0;
842746
//for (ndInt32 n = m_parameters.m_policyUpdatesCount - 1; n >= 0; --n)
@@ -951,8 +855,23 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::LearnPolicyFunction()
951855
// base += m_parameters.m_miniBatchSize;
952856
//}
953857

858+
const ndBrain& brain = **m_policyTrainer->GetBrain();
859+
ndInt32 criticInputSize = brain.GetInputSize() + brain.GetOutputSize();
860+
861+
m_obsevationsBatch.SetCount(m_parameters.m_miniBatchSize * brain.GetInputSize());
862+
954863
for (ndInt32 n = 0; n < m_parameters.m_policyUpdatesCount; ++n)
955864
{
865+
for (ndInt32 i = 0; i < m_parameters.m_miniBatchSize; ++i)
866+
{
867+
const ndInt32 index = m_miniBatchIndexBuffer[n * m_parameters.m_miniBatchSize + i];
868+
869+
ndBrainMemVector observation(&m_obsevationsBatch[i * brain.GetInputSize()], brain.GetInputSize());
870+
ndMemCpy(&observation[0], m_replayBuffer.GetActions(index), brain.GetOutputSize());
871+
}
872+
m_policyTrainer->MakePrediction(m_obsevationsBatch);
873+
874+
956875

957876
}
958877
}
@@ -961,21 +880,20 @@ void ndBrainAgentDeterministicPolicyGradient_Trainer::LearnPolicyFunction()
961880
void ndBrainAgentDeterministicPolicyGradient_Trainer::Optimize()
962881
{
963882
CalculateExpectedRewards();
964-
for (ndInt32 k = 0; k < sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0]); ++k)
883+
for (ndInt32 k = 0; k < ndInt32(sizeof(m_criticTrainer) / sizeof(m_criticTrainer[0])); ++k)
965884
{
966885
LearnQvalueFunction(k);
967886
}
968887

969888
if (!ndPolycyDelayMod)
970889
{
971890
LearnPolicyFunction();
972-
// m_referencePolicy.SoftCopy(m_policy, m_parameters.m_policyMovingAverageFactor);
973891
}
974892
//for (ndInt32 k = 0; k < sizeof(m_critic) / sizeof(m_critic[0]); ++k)
975893
//{
976894
// m_referenceCritic[k].SoftCopy(m_critic[k], m_parameters.m_criticMovingAverageFactor);
977895
//}
978-
//ndPolycyDelayMod = (ndPolycyDelayMod + 1) % ND_TD3_POLICY_DELAY_MOD;
896+
ndPolycyDelayMod = (ndPolycyDelayMod + 1) % ND_TD3_POLICY_DELAY_MOD;
979897
}
980898

981899
//#pragma optimize( "", off )

newton-4.00/sdk/dBrain/ndBrainAgentDeterministicPolicyGradient_Trainer.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
// ddpg algorithm as described in: https://arxiv.org/pdf/1509.02971.pdf
3434
// https://spinningup.openai.com/en/latest/algorithms/ddpg.html
3535
// https://spinningup.openai.com/en/latest/algorithms/td3.html
36+
// https://spinningup.openai.com/en/latest/algorithms/sac.html
3637

3738
#define ND_USE_TDD3
3839
#ifdef ND_USE_TDD3
@@ -193,7 +194,7 @@ class ndBrainAgentDeterministicPolicyGradient_Trainer : public ndBrainThreadPool
193194
HyperParameters m_parameters;
194195

195196
ndSharedPtr<ndBrainTrainerCpu> m_policyTrainer;
196-
ndSharedPtr<ndBrainTrainerCpuInference> m_referencePolicy;
197+
//ndSharedPtr<ndBrainTrainerCpuInference> m_referencePolicy;
197198

198199
ndSharedPtr<ndBrainTrainerCpu> m_criticTrainer[ND_NUMBER_OF_CRITICS];
199200
ndSharedPtr<ndBrainTrainerCpu> m_referenceCriticTrainer[ND_NUMBER_OF_CRITICS];
@@ -202,6 +203,7 @@ class ndBrainAgentDeterministicPolicyGradient_Trainer : public ndBrainThreadPool
202203
ndBrainVector m_criticValue;
203204
ndBrainVector m_criticGradients;
204205
ndBrainVector m_nextActionBatch;
206+
ndBrainVector m_obsevationsBatch;
205207
ndBrainVector m_nextObsevationsBatch;
206208
ndBrainVector m_criticObservationActionBatch;
207209
ndBrainVector m_criticNextObservationActionBatch;

newton-4.00/sdk/dCollision/ndBvhNode.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -894,7 +894,7 @@ ndInt32 ndBvhSceneManager::BuildSmallBvhTree(ndThreadPool& threadPool, ndBvhNode
894894

895895
stack++;
896896
rootNodeIndex++;
897-
ndAssert(stack < sizeof(stackPool) / sizeof(stackPool[0]));
897+
ndAssert(stack < ndInt32(sizeof(stackPool) / sizeof(stackPool[0])));
898898
}
899899

900900
ndInt32 count1 = block.m_start + block.m_count - index0;
@@ -953,7 +953,7 @@ ndInt32 ndBvhSceneManager::BuildSmallBvhTree(ndThreadPool& threadPool, ndBvhNode
953953

954954
stack++;
955955
rootNodeIndex++;
956-
ndAssert(stack < sizeof(stackPool) / sizeof(stackPool[0]));
956+
ndAssert(stack < ndInt32(sizeof(stackPool) / sizeof(stackPool[0])));
957957
}
958958
}
959959
rootNode->m_bhvLinked = 0;

newton-4.00/sdk/dCollision/ndJointBilateralConstraint.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ void ndJointBilateralConstraint::JointAccelerations(ndJointAccelerationDecriptor
469469

470470
void ndJointBilateralConstraint::ClearMemory()
471471
{
472-
for (ndInt32 i = 0; i < sizeof(m_jointForce) / sizeof(m_jointForce[0]); ++i)
472+
for (ndInt32 i = 0; i < ndInt32(sizeof(m_jointForce) / sizeof(m_jointForce[0])); ++i)
473473
{
474474
m_jointForce[i].Clear();
475475
m_motorAcceleration[i] = ndFloat32 (0.0f);

newton-4.00/sdk/dCollision/ndShape.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ ndShapeInfo::ndShapeInfo()
6060
, m_shapeMaterial()
6161
, m_collisionType(::m_box)
6262
{
63-
for (ndInt32 i = 0; i < sizeof(m_paramArray) / sizeof(m_paramArray[0]); ++i)
63+
for (ndInt32 i = 0; i < ndInt32(sizeof(m_paramArray) / sizeof(m_paramArray[0])); ++i)
6464
{
6565
m_paramArray[i] = ndFloat32(0.0f);
6666
}

newton-4.00/sdk/dCollision/ndShape.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class ndShapeMaterial
8585
:m_userId(0)
8686
{
8787
m_data.m_alignPad = 0;
88-
for (ndInt32 i = 0; i < sizeof(m_userParam) / sizeof(m_userParam[0]); ++i)
88+
for (ndInt32 i = 0; i < ndInt32 (sizeof(m_userParam) / sizeof(m_userParam[0])); ++i)
8989
{
9090
m_userParam[i].m_intData = 0;
9191
}

newton-4.00/sdk/dModel/ndMesh.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ void ndMesh::ApplyTransform(const ndMatrix& transform)
229229
{
230230
entBuffer[stack] = child;
231231
stack++;
232-
ndAssert(stack < sizeof(entBuffer) / sizeof (entBuffer[0]));
232+
ndAssert(stack < ndInt32(sizeof(entBuffer) / sizeof (entBuffer[0])));
233233
}
234234
}
235235
}

0 commit comments

Comments
 (0)