From fa7b7d237fe87101b7e650a2a0f31d8ed5a360e6 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 19 Mar 2020 09:54:14 +0300 Subject: [PATCH] [SYCL] Remove image_api LIT Reasons for removal: 1. The test does not really tests image API. 2. The test duplicates code from handler without any reason. 3. There are other tests that verify images and scheduler in a clear manner. Signed-off-by: Alexander Batashev --- sycl/test/basic_tests/image_api.cpp | 165 ---------------------------- 1 file changed, 165 deletions(-) delete mode 100644 sycl/test/basic_tests/image_api.cpp diff --git a/sycl/test/basic_tests/image_api.cpp b/sycl/test/basic_tests/image_api.cpp deleted file mode 100644 index 1a5abc258af79..0000000000000 --- a/sycl/test/basic_tests/image_api.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// REQUIRES: opencl - -// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -I %sycl_source_dir %s -o %t1.out -// RUN: %clangxx -I %sycl_source_dir %s -o %t3.out -lsycl -I %sycl_include -// RUN: env SYCL_DEVICE_TYPE=HOST %t1.out -// RUN: env SYCL_DEVICE_TYPE=HOST %t3.out -// RUN: %CPU_RUN_PLACEHOLDER %t1.out -// RUN: %GPU_RUN_PLACEHOLDER %t1.out -// RUN: %ACC_RUN_PLACEHOLDER %t1.out - -#include -// FIXME do not use internal methods in tests. -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -namespace s = cl::sycl; -namespace d = cl::sycl::detail; - -struct FakeHandler { - d::NDRDescT MNDRDesc; - s::unique_ptr_class MHostKernel; - s::shared_ptr_class MSyclKernel; - s::vector_class> MArgsStorage; - s::vector_class MAccStorage; - s::vector_class MRequirements; - s::vector_class MArgs; - s::vector_class> MSharedPtrStorage; - s::string_class MKernelName; - d::OSModuleHandle MOSModuleHandle; - s::vector_class> MStreamStorage; -}; - -int main() { - constexpr size_t Size = 256; - std::array Src; - std::array Dest; - std::fill(Src.begin(), Src.end(), s::float4{1.0f, 2.0f, 3.0f, 4.0f}); - std::fill(Dest.begin(), Dest.end(), s::float4{0.0f, 0.0f, 0.0f, 0.0}); - - try { - constexpr int Dimensions = 2; - constexpr s::image_channel_order ChannelOrder = - s::image_channel_order::rgba; - constexpr s::image_channel_type ChannelType = s::image_channel_type::fp32; - const s::range Range{16, 16}; - s::image SrcImage(Src.data(), ChannelOrder, ChannelType, Range); - s::image DestImage(Dest.data(), ChannelOrder, ChannelType, - Range); - - s::queue Queue; - s::device Device = Queue.get_device(); - if(!Device.get_info()) { - std::cout << "Images are not supported. The result can not be checked." - << std::endl; - return 0; - } - - FakeHandler Handler; - Handler.MNDRDesc.set(Range); - if (Queue.is_host()) { - auto KernelFunc = [&](s::id ID) { - s::int2 Coords(ID[0], ID[1]); - int linearId = ID[1] + ID[0] * Range[0]; - s::float4 Color = Src[linearId]; - Color *= 10.0f; - Dest[linearId] = Color; - }; - - Handler.MHostKernel.reset( - new d::HostKernel, - Dimensions>(KernelFunc)); - } else { - s::context Context = Queue.get_context(); - s::program Program(Context); - Program.build_with_source( - "__kernel void ImageTest(__read_only image2d_t Input, __write_only " - "image2d_t Output, sampler_t sampler) {" - " int2 Coords = (int2)(get_global_id(0), get_global_id(1));" - " float4 Color = read_imagef(Input, sampler, Coords);" - " Color *= 10.0f;" - " write_imagef(Output, Coords, Color);" - "}\n"); - s::kernel Kernel = Program.get_kernel("ImageTest"); - Handler.MSyclKernel = d::getSyclObjImpl(Kernel); - Handler.MKernelName = - Handler.MSyclKernel->get_info(); - Handler.MOSModuleHandle = - d::OSUtil::getOSModuleHandle(Handler.MKernelName.c_str()); - } - - auto addFakeImageAccessor = [&Handler, Dimensions](s::image Image, - s::access::mode Mode, int Index) { - const s::id<3> Offset{0, 0, 0}; - const s::range<3> AccessRange{Image.get_range()[0], Image.get_range()[1], 1}; - const s::range<3> MemoryRange{Image.get_range()[0], Image.get_range()[1], 1}; - d::SYCLMemObjI *SYCLMemObject = static_cast(d::getSyclObjImpl(Image).get()); - const int ElemSize = d::getSyclObjImpl(Image)->getElementSize(); - - d::AccessorImplPtr AccImpl = std::make_shared(Offset, - AccessRange,MemoryRange, Mode, SYCLMemObject, Dimensions, ElemSize); - - d::Requirement *Req = AccImpl.get(); - Handler.MRequirements.push_back(Req); - Handler.MAccStorage.push_back(AccImpl); - Handler.MArgs.emplace_back(d::kernel_param_kind_t::kind_accessor, Req, - static_cast(s::access::target::image), - Index); - }; - - addFakeImageAccessor(SrcImage, s::access::mode::read, 0); - addFakeImageAccessor(DestImage, s::access::mode::write, 1); - - s::sampler Sampler(s::coordinate_normalization_mode::unnormalized, - s::addressing_mode::clamp, s::filtering_mode::nearest); - Handler.MArgsStorage.emplace_back(sizeof(s::sampler)); - s::sampler *SamplerPtr = - reinterpret_cast(Handler.MArgsStorage.back().data()); - *SamplerPtr = Sampler; - Handler.MArgs.emplace_back(d::kernel_param_kind_t::kind_sampler, - static_cast(SamplerPtr), - sizeof(s::sampler), 2); - - s::unique_ptr_class CommandGroup; - CommandGroup.reset(new d::CGExecKernel( - std::move(Handler.MNDRDesc), std::move(Handler.MHostKernel), - std::move(Handler.MSyclKernel), std::move(Handler.MArgsStorage), - std::move(Handler.MAccStorage), std::move(Handler.MSharedPtrStorage), - std::move(Handler.MRequirements), /*DepsEvents*/ {}, - std::move(Handler.MArgs), std::move(Handler.MKernelName), - std::move(Handler.MOSModuleHandle), std::move(Handler.MStreamStorage), - d::CG::KERNEL)); - - d::EventImplPtr Event = d::Scheduler::getInstance().addCG( - std::move(CommandGroup), d::getSyclObjImpl(Queue)); - - s::event EventRet = d::createSyclObjFromImpl(Event); - EventRet.wait(); - } catch (const s::exception &E) { - std::cout << "SYCL exception caught: " << E.what() << std::endl; - } - - s::float4 Expected{10.f, 20.f, 30.f, 40.f}; - - bool Result = std::all_of(Dest.cbegin(), Dest.cend(), - [Expected](const s::float4 &Value) -> bool { - return s::all(s::isequal(Value, Expected)); - }); - - if (Result) { - std::cout << "The result is correct." << std::endl; - } else { - std::cout << "The result is incorrect." << std::endl; - assert(Result); - } - return 0; -}