diff --git a/libnd4j/include/graph/profiling/impl/GraphProfile.cpp b/libnd4j/include/graph/profiling/impl/GraphProfile.cpp index 6c9edac15..14ce54a0f 100644 --- a/libnd4j/include/graph/profiling/impl/GraphProfile.cpp +++ b/libnd4j/include/graph/profiling/impl/GraphProfile.cpp @@ -199,8 +199,8 @@ namespace sd { return a->getExecutionTime() > b->getExecutionTime(); }); - nd4j_printf("\nTop 30 reports by EXEC:\n", ""); - auto limit = sd::math::nd4j_min(30, sorted.size()); + nd4j_printf("\nTop 50 reports by EXEC:\n", ""); + auto limit = sd::math::nd4j_min(50, sorted.size()); for (int e = 0; e < limit; e++) { sorted[e]->printOut(); } diff --git a/libnd4j/tests_cpu/layers_tests/PlaygroundTests.cpp b/libnd4j/tests_cpu/layers_tests/PlaygroundTests.cpp index 779717d5f..ac969ebbd 100644 --- a/libnd4j/tests_cpu/layers_tests/PlaygroundTests.cpp +++ b/libnd4j/tests_cpu/layers_tests/PlaygroundTests.cpp @@ -90,6 +90,65 @@ TEST_F(PlaygroundTests, test_biasAdd_1) { } +TEST_F(PlaygroundTests, test_bert_full_1) { + // this test will run ONLY if this model exists + if (sd::graph::getFileSize("/home/raver119/Downloads/BertFull/model.fb") < 0) + return; + + auto graph = GraphExecutioner::importFromFlatBuffers("/home/raver119/Downloads/BertFull/model.fb"); + + auto t = NDArrayFactory::fromNpyFile("/home/raver119/Downloads/BertFull/in0_IteratorGetNext.npy"); + auto u = NDArrayFactory::fromNpyFile("/home/raver119/Downloads/BertFull/in1_IteratorGetNext_1.npy"); + auto v = NDArrayFactory::fromNpyFile("/home/raver119/Downloads/BertFull/in2_IteratorGetNext_4.npy"); + auto z = NDArrayFactory::fromNpyFile("/home/raver119/Downloads/BertFull/out_loss-Softmax.npy"); + + //graph->printOut(); + + graph->tagInplaceNodes(); + + graph->getVariableSpace()->putVariable(658,0, t); + graph->getVariableSpace()->putVariable(659,0, u); + graph->getVariableSpace()->putVariable(660,0, v); + +/* + // validating graph now + auto status = GraphExecutioner::execute(graph); + ASSERT_EQ(Status::OK(), status); + ASSERT_TRUE(graph->getVariableSpace()->hasVariable(1620)); + + auto array = graph->getVariableSpace()->getVariable(1620)->getNDArray(); + ASSERT_EQ(z, *array); + +*/ + + sd::Environment::getInstance()->setProfiling(true); + auto profile = GraphProfilingHelper::profile(graph, 1); + + profile->printOut(); + + sd::Environment::getInstance()->setProfiling(false); + delete profile; + +/* + std::vector values; + + for (int e = 0; e < 1; e++) { + auto timeStart = std::chrono::system_clock::now(); + + GraphExecutioner::execute(graph); + + auto timeEnd = std::chrono::system_clock::now(); + auto outerTime = std::chrono::duration_cast(timeEnd - timeStart).count(); + values.emplace_back(outerTime); + } + + std::sort(values.begin(), values.end()); + + nd4j_printf("Time: %lld us;\n", values[values.size() / 2]); +*/ + delete graph; +} + TEST_F(PlaygroundTests, test_bert_1) { // this test will run ONLY if this model exists