| 50 | } |
| 51 | |
| 52 | void Run(const TCudaStream& stream) const { |
| 53 | auto target_ptr = TConstArrayRef<float>(Targets.Get(), Targets.ObjectCount()); |
| 54 | auto weights_ptr = TConstArrayRef<float>(Weights.Get(), Weights.ObjectCount()); |
| 55 | auto predictions_ptr = TConstArrayRef<float>(Predictions.Get(), Predictions.ObjectCount()); |
| 56 | auto val_results_ptr = TConstArrayRef<float>(ValResults.Get(), ValResults.ObjectCount()); |
| 57 | auto der1_results_ptr = TConstArrayRef<float>(Der1Results.Get(), Der1Results.ObjectCount()); |
| 58 | auto der2_results_ptr = TConstArrayRef<float>(Der2Results.Get(), Der2Results.ObjectCount()); |
| 59 | size_t totalObjects = Targets.ObjectCount(); |
| 60 | size_t NumBlocks = (totalObjects + BlockSize - 1) / BlockSize; |
| 61 | (*(Descriptor.GpuCalcDersRange))(predictions_ptr, target_ptr, weights_ptr, val_results_ptr, der1_results_ptr, der2_results_ptr, totalObjects, Descriptor.CustomData, stream.GetStream(), BlockSize, NumBlocks); |
| 62 | } |
| 63 | }; |
| 64 | |
| 65 | class TUserDefinedMetricKernel: public TStatelessKernel { |
nothing calls this directly
no test coverage detected