Updated tests to use shaderc
This commit is contained in:
parent
940a60958c
commit
5bc2d0dae7
5 changed files with 42 additions and 49 deletions
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
#include "kompute/Kompute.hpp"
|
||||
|
||||
#include "TestUtils.cpp"
|
||||
|
||||
TEST(TestAsyncOperations, TestManagerParallelExecution)
|
||||
{
|
||||
// This test is built for NVIDIA 1650. It assumes:
|
||||
|
|
@ -55,7 +57,7 @@ TEST(TestAsyncOperations, TestManagerParallelExecution)
|
|||
|
||||
for (uint32_t i = 0; i < numParallel; i++) {
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ inputsSyncB[i] }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ inputsSyncB[i] }, spirv_from_string(shader));
|
||||
}
|
||||
|
||||
auto endSync = std::chrono::high_resolution_clock::now();
|
||||
|
|
@ -89,7 +91,7 @@ TEST(TestAsyncOperations, TestManagerParallelExecution)
|
|||
mgrAsync.evalOpAsync<kp::OpAlgoBase>(
|
||||
{ inputsAsyncB[i] },
|
||||
"async" + std::to_string(i),
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
}
|
||||
|
||||
for (uint32_t i = 0; i < numParallel; i++) {
|
||||
|
|
@ -152,10 +154,10 @@ TEST(TestAsyncOperations, TestManagerAsyncExecution)
|
|||
mgr.rebuild({ tensorA, tensorB });
|
||||
|
||||
mgr.evalOpAsync<kp::OpAlgoBase>(
|
||||
{ tensorA }, "asyncOne", std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, "asyncOne", spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpAsync<kp::OpAlgoBase>(
|
||||
{ tensorB }, "asyncTwo", std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorB }, "asyncTwo", spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpAwait("asyncOne");
|
||||
mgr.evalOpAwait("asyncTwo");
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "kompute/Kompute.hpp"
|
||||
|
||||
#include "TestUtils.cpp"
|
||||
|
||||
TEST(TestDestroy, TestDestroyTensorSingle)
|
||||
{
|
||||
std::shared_ptr<kp::Tensor> tensorA{ new kp::Tensor({ 0, 0, 0 }) };
|
||||
|
|
@ -28,7 +30,7 @@ TEST(TestDestroy, TestDestroyTensorSingle)
|
|||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq->end();
|
||||
|
||||
sq->eval();
|
||||
|
|
@ -71,7 +73,7 @@ TEST(TestDestroy, TestDestroyTensorVector)
|
|||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA, tensorB }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA, tensorB }, spirv_from_string(shader));
|
||||
sq->end();
|
||||
|
||||
sq->eval();
|
||||
|
|
@ -136,7 +138,7 @@ TEST(TestDestroy, TestDestroySequenceSingle)
|
|||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq->end();
|
||||
|
||||
sq->eval();
|
||||
|
|
@ -176,14 +178,14 @@ TEST(TestDestroy, TestDestroySequenceVector)
|
|||
sq1 = mgr.sequence("One");
|
||||
sq1->begin();
|
||||
sq1->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq1->end();
|
||||
sq1->eval();
|
||||
|
||||
sq2 = mgr.sequence("Two");
|
||||
sq2->begin();
|
||||
sq2->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq2->end();
|
||||
sq2->eval();
|
||||
|
||||
|
|
@ -218,11 +220,11 @@ TEST(TestDestroy, TestDestroySequenceNameSingleInsideManager)
|
|||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "one",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "two",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA });
|
||||
|
||||
|
|
@ -257,7 +259,7 @@ TEST(TestDestroy, TestDestroySequenceNameSingleOutsideManager)
|
|||
sq1 = mgr.sequence("One");
|
||||
sq1->begin();
|
||||
sq1->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq1->end();
|
||||
sq1->eval();
|
||||
|
||||
|
|
@ -291,11 +293,11 @@ TEST(TestDestroy, TestDestroySequenceNameVectorInsideManager)
|
|||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "one",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "two",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA });
|
||||
|
||||
|
|
@ -325,11 +327,11 @@ TEST(TestDestroy, TestDestroySequenceNameVectorOutsideManager)
|
|||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "one",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOp<kp::OpAlgoBase>(
|
||||
{ tensorA }, "two",
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA });
|
||||
|
||||
|
|
@ -359,7 +361,7 @@ TEST(TestDestroy, TestDestroySequenceNameDefaultOutsideManager)
|
|||
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ tensorA },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA });
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "kompute/Kompute.hpp"
|
||||
|
||||
#include "TestUtils.cpp"
|
||||
|
||||
TEST(TestMultipleAlgoExecutions, SingleSequenceRecord)
|
||||
{
|
||||
|
||||
|
|
@ -28,11 +30,11 @@ TEST(TestMultipleAlgoExecutions, SingleSequenceRecord)
|
|||
sq->begin();
|
||||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
|
||||
sq->record<kp::OpTensorSyncLocal>({ tensorA });
|
||||
|
||||
|
|
@ -73,19 +75,19 @@ TEST(TestMultipleAlgoExecutions, MultipleCmdBufRecords)
|
|||
// Then perform the computations
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>({ tensorA },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>({ tensorA },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>({ tensorA },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
||||
|
|
@ -122,7 +124,7 @@ TEST(TestMultipleAlgoExecutions, MultipleSequences)
|
|||
sq->begin();
|
||||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
|
@ -135,7 +137,7 @@ TEST(TestMultipleAlgoExecutions, MultipleSequences)
|
|||
sq->begin();
|
||||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
|
@ -148,7 +150,7 @@ TEST(TestMultipleAlgoExecutions, MultipleSequences)
|
|||
sq->begin();
|
||||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
|
||||
sq->end();
|
||||
sq->eval();
|
||||
|
|
@ -206,7 +208,7 @@ TEST(TestMultipleAlgoExecutions, SingleRecordMultipleEval)
|
|||
sq->begin();
|
||||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
|
||||
sq->end();
|
||||
|
||||
|
|
@ -265,7 +267,7 @@ TEST(TestMultipleAlgoExecutions, ManagerEvalMultSourceStrOpCreate)
|
|||
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ tensorInA, tensorInB, tensorOut },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorOut });
|
||||
|
||||
|
|
@ -308,7 +310,7 @@ TEST(TestMultipleAlgoExecutions, ManagerEvalMultSourceStrMgrCreate)
|
|||
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ tensorInA, tensorInB, tensorOut },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorOut });
|
||||
|
||||
|
|
@ -340,7 +342,7 @@ TEST(TestMultipleAlgoExecutions, SequenceAlgoDestroyOutsideManagerScope)
|
|||
|
||||
sq->begin();
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA }, spirv_from_string(shader));
|
||||
sq->end();
|
||||
|
||||
sq->eval();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "kompute/Kompute.hpp"
|
||||
|
||||
#include "TestUtils.cpp"
|
||||
|
||||
TEST(TestProcessingIterations, IterateThroughMultipleSumAndCopies)
|
||||
{
|
||||
kp::Manager mgr;
|
||||
|
|
@ -53,7 +55,7 @@ TEST(TestProcessingIterations, IterateThroughMultipleSumAndCopies)
|
|||
|
||||
sq->record<kp::OpAlgoBase>(
|
||||
{ tensorA, tensorB },
|
||||
std::vector<char>(shader.begin(), shader.end()));
|
||||
spirv_from_string(shader));
|
||||
|
||||
sq->record<kp::OpTensorCopy>({ tensorB, tensorA });
|
||||
sq->end();
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
#include "kompute_test/shaders/shadertest_op_custom_shader.hpp"
|
||||
|
||||
#include "TestUtils.cpp"
|
||||
|
||||
TEST(TestOpAlgoBase, ShaderRawDataFromConstructor)
|
||||
{
|
||||
kp::Manager mgr;
|
||||
|
|
@ -29,7 +31,7 @@ TEST(TestOpAlgoBase, ShaderRawDataFromConstructor)
|
|||
)");
|
||||
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ tensorA, tensorB }, std::vector<char>(shader.begin(), shader.end()));
|
||||
{ tensorA, tensorB }, spirv_from_string(shader));
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA, tensorB });
|
||||
|
||||
|
|
@ -59,23 +61,6 @@ TEST(TestOpAlgoBase, ShaderCompiledDataFromConstructor)
|
|||
EXPECT_EQ(tensorB->data(), std::vector<float>({ 3, 4, 5 }));
|
||||
}
|
||||
|
||||
TEST(TestOpAlgoBase, ShaderRawDataFromFile)
|
||||
{
|
||||
kp::Manager mgr;
|
||||
|
||||
std::shared_ptr<kp::Tensor> tensorA{ new kp::Tensor({ 3, 4, 5 }) };
|
||||
std::shared_ptr<kp::Tensor> tensorB{ new kp::Tensor({ 0, 0, 0 }) };
|
||||
mgr.rebuild({ tensorA, tensorB });
|
||||
|
||||
mgr.evalOpDefault<kp::OpAlgoBase>(
|
||||
{ tensorA, tensorB }, "test/shaders/glsl/test_op_custom_shader.comp");
|
||||
|
||||
mgr.evalOpDefault<kp::OpTensorSyncLocal>({ tensorA, tensorB });
|
||||
|
||||
EXPECT_EQ(tensorA->data(), std::vector<float>({ 0, 1, 2 }));
|
||||
EXPECT_EQ(tensorB->data(), std::vector<float>({ 3, 4, 5 }));
|
||||
}
|
||||
|
||||
TEST(TestOpAlgoBase, ShaderCompiledDataFromFile)
|
||||
{
|
||||
kp::Manager mgr;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue