trisycl implementation of sycl

1525
triSYCL implementation of SYCL Generated by Doxygen 1.8.13

Upload: others

Post on 19-May-2022

16 views

Category:

Documents


0 download

TRANSCRIPT

8.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.1.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.1.2.1 class trisycl::detail::accessor_base . . . . . . . . . . . . . . . . . . . . . . . . 33
8.1.2.3 class trisycl::accessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
ii CONTENTS
8.1.2.6 class trisycl::detail::accessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.1.2.7 class trisycl::detail::buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.1.2.8 struct trisycl::detail::buffer_base . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1.2.9 class trisycl::detail::buffer_waiter . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.1.2.10 class trisycl::buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.1.2.11 struct trisycl::image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.1.2.12 struct trisycl::detail::reserve_id . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.1.2.13 class trisycl::detail::pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.1.2.14 class trisycl::detail::pipe_accessor . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2.15 class trisycl::pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.1.2.16 class trisycl::detail::pipe_reservation . . . . . . . . . . . . . . . . . . . . . . . 176
8.1.2.17 struct trisycl::pipe_reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
8.1.2.18 class trisycl::static_pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.1.3 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.2.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.2.2.1 struct trisycl::detail::ocl_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.2.2.2 struct trisycl::detail::ocl_type< T, access::address_space::constant_space > . . 211
Generated by Doxygen
8.2.2.6 struct trisycl::detail::address_space_array . . . . . . . . . . . . . . . . . . . . . 213
8.2.2.7 struct trisycl::detail::address_space_fundamental . . . . . . . . . . . . . . . . . 216
8.2.2.8 struct trisycl::detail::address_space_object . . . . . . . . . . . . . . . . . . . . 219
8.2.2.9 struct trisycl::detail::address_space_ptr . . . . . . . . . . . . . . . . . . . . . . 222
8.2.2.10 struct trisycl::detail::address_space_base . . . . . . . . . . . . . . . . . . . . . 225
8.2.2.11 struct trisycl::detail::address_space_variable . . . . . . . . . . . . . . . . . . . 227
8.2.3 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
8.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.3.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.3.2.1 class trisycl::detail::context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.3.2.2 class trisycl::detail::host_context . . . . . . . . . . . . . . . . . . . . . . . . . . 242
8.3.2.3 class trisycl::context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
8.3.2.4 class trisycl::detail::device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
8.3.2.5 class trisycl::device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.3.3.1 PLATFORM_GET_INFO_STRING . . . . . . . . . . . . . . . . . . . . . . . . 329
8.3.5.1 context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
8.3.5.2 device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
8.3.5.3 device_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
8.3.5.4 execution_capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
8.3.5.5 fp_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
8.3.5.6 global_mem_cache_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
8.3.5.7 local_mem_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
8.3.5.8 partition_affinity_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Generated by Doxygen
8.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
8.4.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
8.4.2.1 struct trisycl::detail::expand_to_vector . . . . . . . . . . . . . . . . . . . . . . . 349
8.4.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
8.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
8.5.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
8.5.2.1 struct trisycl::detail::container_element_aspect . . . . . . . . . . . . . . . . . . 354
8.5.2.2 struct trisycl::detail::small_array . . . . . . . . . . . . . . . . . . . . . . . . . . 355
8.5.2.3 struct trisycl::detail::small_array_123 . . . . . . . . . . . . . . . . . . . . . . . 361
8.5.3 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
8.5.3.1 TRISYCL_BOOST_OPERATOR_VECTOR_OP . . . . . . . . . . . . . . . . . 367
8.5.3.2 TRISYCL_LOGICAL_OPERATOR_VECTOR_OP . . . . . . . . . . . . . . . . 368
8.5.3.3 TRISYCL_OPERATOR_BASIC_TYPE_OP . . . . . . . . . . . . . . . . . . . . 368
8.5.3.4 TRISYCL_UNIMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
8.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
8.6.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
8.6.2.1 struct trisycl::detail::debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
8.6.2.2 struct trisycl::detail::display_vector . . . . . . . . . . . . . . . . . . . . . . . . . 372
8.6.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
8.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
8.7.2.1 __SYCL_SINGLE_SOURCE__ . . . . . . . . . . . . . . . . . . . . . . . . . . 375
8.7.2.2 BOOST_COMPUTE_CL_VERSION_1_2 . . . . . . . . . . . . . . . . . . . . . 376
8.7.2.3 CL_SYCL_LANGUAGE_VERSION . . . . . . . . . . . . . . . . . . . . . . . . 376
8.7.2.4 TRISYCL_CL_LANGUAGE_VERSION . . . . . . . . . . . . . . . . . . . . . . 376
8.7.2.5 TRISYCL_DEBUG_ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
8.7.2.6 TRISYCL_DEVICE_ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
8.7.2.7 TRISYCL_MAKE_BOOST_CIRCULARBUFFER_THREAD_SAFE . . . . . . . . 377
8.7.2.8 TRISYCL_OPENCL_ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
8.8 Opencl_spir_helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
8.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
8.9.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
8.9.2.1 class trisycl::drt::drt::accessor . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
8.9.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
8.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
8.11.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
8.11.2.1 struct trisycl::group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
8.11.2.2 struct trisycl::h_item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
8.11.2.9 class trisycl::range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
8.11.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
8.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
8.12.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
8.12.2.1 struct trisycl::elem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
8.12.2.2 class trisycl::vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
8.12.3 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
8.12.3.1 TRISYCL_DECLARE_S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
8.12.3.2 TRISYCL_DEFINE_VEC_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . 539
8.12.3.3 TRISYCL_DEFINE_VEC_TYPE_SIZE . . . . . . . . . . . . . . . . . . . . . . 539
8.12.3.4 TRISYCL_GEN_SWIZ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
8.12.3.5 TRISYCL_GEN_SWIZ3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
8.12.3.6 TRISYCL_GEN_SWIZ4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
8.12.5.1 rounding_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
8.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
8.13.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
8.13.2.1 class trisycl::vendor::trisycl::scope::detail::device . . . . . . . . . . . . . . . . . 546
8.13.2.2 struct trisycl::vendor::trisycl::scope::empty_device_scope . . . . . . . . . . . . . 550
8.13.2.3 class trisycl::vendor::trisycl::scope::device . . . . . . . . . . . . . . . . . . . . . 550
8.13.2.4 class trisycl::vendor::trisycl::scope::detail::platform . . . . . . . . . . . . . . . . 556
8.13.2.5 struct trisycl::vendor::trisycl::scope::empty_platform_scope . . . . . . . . . . . . 558
8.13.2.6 class trisycl::vendor::trisycl::scope::platform . . . . . . . . . . . . . . . . . . . . 559
8.13.2.7 class trisycl::vendor::trisycl::scope::detail::queue . . . . . . . . . . . . . . . . . 563
8.13.2.8 struct trisycl::vendor::trisycl::scope::empty_queue_scope . . . . . . . . . . . . . 566
8.13.2.9 class trisycl::vendor::trisycl::scope::queue . . . . . . . . . . . . . . . . . . . . . 567
8.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
8.14.2 Class Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
8.14.2.1 struct trisycl::vendor::xilinx::partition_array . . . . . . . . . . . . . . . . . . . . 575
8.14.3.1 _ssdm_op_SpecDataflowPipeline . . . . . . . . . . . . . . . . . . . . . . . . . 582
8.14.3.2 _ssdm_op_SpecPipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
8.14.3.3 _ssdm_SpecArrayPartition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Generated by Doxygen
9.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
9.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
9.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
9.5.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
9.5.3.1 program_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
9.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
9.6.2.1 address_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
9.6.2.2 fence_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
9.6.2.3 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
9.6.2.4 target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
9.7.1 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
9.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
9.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
9.14.1 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
9.14.2.1 event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
9.14.2.2 event_command_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
9.14.2.3 event_profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
9.14.2.4 queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
9.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
9.22.1 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
9.23.1 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
9.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
9.24.2.1 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Generated by Doxygen
10.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
10.1.2.1 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
10.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
10.2.2.1 get_align() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
10.2.3.1 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
10.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
10.3.2.1 ele_in_each_physical_mem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
10.3.2.2 partition_dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
10.3.2.3 partition_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
10.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
10.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
10.5.2.1 key_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
10.5.2.2 value_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
10.5.3.1 get_or_register() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
10.5.3.2 remove() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
10.5.4.1 c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
10.5.4.2 m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Generated by Doxygen
10.6.2.1 command_group() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
10.6.3.1 device_scope() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
10.6.3.2 operator::trisycl::handler &() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
10.6.3.3 parallel_for() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
10.6.3.4 platform_scope() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
10.6.3.5 single_task() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
10.6.4.1 cgh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
10.6.4.2 d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
10.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
10.7.2.1 partition_dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
10.7.2.2 partition_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
10.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
10.8.2.1 partition_dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
10.8.2.2 partition_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
10.8.2.3 physical_mem_num . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
10.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
10.9.2.1 report_error() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
10.10.2.1 enable_profiling() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
10.11.2.1 ∼event() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
10.11.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
10.11.3.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
10.11.3.3 get_command_execution_status() . . . . . . . . . . . . . . . . . . . . . . . . . 645
10.11.3.4 get_profiling_info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
10.11.3.5 get_reference_count() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
10.11.3.6 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
10.11.3.7 wait() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
10.12.2.1 implementation_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
10.12.3.1 event() [1/3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
10.12.3.2 event() [2/3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
10.12.3.3 event() [3/3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
10.12.4.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
10.12.4.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
10.12.4.3 get_info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
10.12.4.4 get_profiling_info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
10.12.4.5 get_wait_list() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
10.12.4.6 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
10.12.5.1 implementation_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
10.13.2.1 half() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
10.13.3.1 operator>() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
10.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
10.14.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
10.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
10.15.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
10.16.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
10.16.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
10.17.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
10.17.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
10.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
Generated by Doxygen
10.19.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
10.19.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
10.20.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
10.20.2.1 operator()() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
10.21.2.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
10.21.2.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
10.21.2.3 get_info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
10.21.2.4 get_platform() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
10.21.2.5 has_extension() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
10.21.2.6 is_accelerator() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
10.21.2.7 is_cpu() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
10.21.2.8 is_gpu() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
10.21.2.9 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
10.22.2.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
10.22.2.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
10.22.2.3 get_command_execution_status() . . . . . . . . . . . . . . . . . . . . . . . . . 670
10.22.2.4 get_profiling_info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
10.22.2.5 get_reference_count() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
10.22.2.6 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Generated by Doxygen
10.23.2.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
10.23.2.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
10.23.2.3 get_context() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
10.23.2.4 get_device() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
10.23.2.5 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
10.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
10.25trisycl::vendor::xilinx::partition::none Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 677
10.25.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
10.25.2.1 partition_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
10.26.2.1 opencl_context() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
10.26.2.2 ∼opencl_context() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
10.26.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
10.26.3.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
10.26.3.3 get_boost_queue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
10.26.3.4 get_devices() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
10.26.3.5 get_platform() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
10.26.3.6 get_reference_count() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
10.26.3.7 instance() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
10.26.3.8 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Generated by Doxygen
10.27.2.1 opencl_device() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
10.27.2.2 ∼opencl_device() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
10.27.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
10.27.3.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
10.27.4.1 cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
10.27.4.2 d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
10.28.2.1 opencl_event() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
10.28.2.2 ∼opencl_event() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
10.28.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
Generated by Doxygen
10.28.4.1 cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
10.28.4.2 e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
10.29.2.1 opencl_kernel() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
10.29.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
10.29.3.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
10.29.3.3 instance() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
10.29.3.4 single_task() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
10.29.3.5 TRISYCL_ParallelForKernel_RANGE() . . . . . . . . . . . . . . . . . . . . . . 704
10.29.4.1 cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
10.29.4.2 k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
10.30.2.1 opencl_queue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
10.30.2.2 ∼opencl_queue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
10.30.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Generated by Doxygen
10.30.4.1 cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
10.30.4.2 q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
10.31.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
10.32trisycl::program Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
10.32.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
10.32.2.1 implementation_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
10.32.3.1 program() [1/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
10.32.3.2 program() [2/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
10.32.4.1 build_with_kernel_type() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
10.32.4.2 compile_with_kernel_type() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
10.32.4.3 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
10.32.5.1 handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
10.32.6.1 implementation_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Generated by Doxygen
10.33.2.1 program() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
10.33.3.1 binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
10.33.3.2 binary_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
10.33.3.3 p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
10.34.2.1 ∼program() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
10.34.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
10.36.2.1 property_list() [1/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
10.36.2.2 property_list() [2/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
10.36.3.1 addproperty() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
10.36.3.2 get_property() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
10.36.3.3 has_property() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
10.36.3.4 TRISYCL_PROPERTY_CREATE() . . . . . . . . . . . . . . . . . . . . . . . . 724
10.37.2.1 queue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Generated by Doxygen
10.37.3.1 get() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
10.37.3.2 get_boost_compute() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
10.37.3.3 get_context() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
10.37.3.4 get_device() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
10.37.3.5 is_host() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
10.37.3.6 kernel_end() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
10.37.3.7 kernel_start() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
10.37.3.8 wait_for_kernel_execution() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
10.37.4.1 finished . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
10.37.4.2 finished_mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
10.37.4.3 running_kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
10.38.2.1 shared_ptr_implementation() [1/3] . . . . . . . . . . . . . . . . . . . . . . . . 734
10.38.2.2 shared_ptr_implementation() [2/3] . . . . . . . . . . . . . . . . . . . . . . . . 735
10.38.2.3 shared_ptr_implementation() [3/3] . . . . . . . . . . . . . . . . . . . . . . . . 735
10.38.3.1 hash() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
10.38.3.2 operator<() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
10.38.3.3 operator==() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
10.38.4.1 implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
10.39.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
10.39.2.1 instance() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Generated by Doxygen
10.40.2.1 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
10.41.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
10.41.2.1 type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
10.42.2.1 task() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
10.42.3.1 add_buffer() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
10.42.3.2 add_postlude() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
10.42.3.3 add_prelude() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
10.42.3.4 get_compute_buffer() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
10.42.3.5 get_kernel() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
10.42.3.6 get_queue() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
10.42.3.7 notify_consumers() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
10.42.3.8 postlude() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
10.42.3.9 prelude() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
10.42.4.1 accessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
10.42.4.2 buffers_in_use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
10.42.4.3 epilogues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
10.42.4.4 execution_ended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
10.42.4.5 kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
10.42.4.6 owner_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
10.42.4.7 producer_tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
10.42.4.8 prologues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
10.42.4.9 ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
10.43.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
10.43.2.1 basic_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
10.43.3.1 vec() [1/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
10.43.3.2 vec() [2/2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
10.43.4.1 apply_binary_functor() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
10.43.4.2 apply_binary_functor_impl() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
10.43.4.3 apply_unary_functor() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
10.43.4.4 apply_unary_functor_impl() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
10.43.4.5 as() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
10.43.4.6 convert() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
11.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
11.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
11.6 sycl.hpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
11.8 access.hpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
11.10accessor.hpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
11.17.2.1 TRISYCL_CONSTANT_AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
11.17.2.2 TRISYCL_GENERIC_AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
11.17.2.3 TRISYCL_GLOBAL_AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
11.17.2.4 TRISYCL_LOCAL_AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
11.17.2.5 TRISYCL_PRIVATE_AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
11.57.1.1 TRISYCL_DUMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
11.57.1.2 TRISYCL_DUMP_T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
11.57.1.3 TRISYCL_INTERNAL_DUMP . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
11.61.1.1 TRISYCL_WEAK_ATTRIB_PREFIX . . . . . . . . . . . . . . . . . . . . . . . . 880
11.61.1.2 TRISYCL_WEAK_ATTRIB_SUFFIX . . . . . . . . . . . . . . . . . . . . . . . . 880
11.75.1.1 __kernel_exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
11.75.1.2 as_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
11.75.1.3 as_char16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
11.75.1.4 as_char2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.75.1.5 as_char3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.75.1.6 as_char4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.75.1.7 as_char8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.75.1.8 as_double . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.75.1.9 as_double16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
11.79.1.1 __constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
11.79.1.2 __generic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
11.79.1.3 __global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
11.79.1.4 __local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
11.79.1.5 __private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
11.79.1.6 const_func . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
11.79.1.7 readonly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
11.91.1.1 SYCL_VENDOR_TRISYCL_DEVICE_SCOPE . . . . . . . . . . . . . . . . . . 1207
Generated by Doxygen
11.95.1.1 TRISYCL_DEFINE_DEVICE_HOST_INFO_TEMPLATE . . . . . . . . . . . . . 1212
11.99.1.1 TRISYCL_DEFINE_DEVICE_INFO_CL_TEMPLATE . . . . . . . . . . . . . . . 1217
11.99.1.2 TRISYCL_DEFINE_DEVICE_INFO_TEMPLATE . . . . . . . . . . . . . . . . . 1218
Chapter 1
Main Page
This is the main triSYCL C++ header file to experiment with the SYCL specification.It declares everything into the trisycl namespace instead of cl::sycl for SYCL 1.2.1 to express triSYCL specific extensions and to be used in full or partially with other SYCL implementations without naming conflict.
You can use CL/sycl.hpp or SYCL/sycl.hpp headers instead to use this implementation with the usual cl::sycl or sycl namespaces.
For more information about SYCL: http://www.khronos.org/sycl/
For more information on this project and to access to the source of this file, look at https://github.←
com/triSYCL/triSYCL
Doxygen/triSYCL/html and http://trisycl.github.io/triSYCL/Doxygen/triSYC←
Copyright 2014–2015 Advanced Micro Devices, Inc.
Copyright 2015–2020 Xilinx, Inc.
This file is distributed under the University of Illinois Open Source License. See LICENSE.TXT for details.
Member const_func
implement group and nd_item and to add nd_item to create_parallel_for_arg
File parallelism.hpp
Namespace trisycl::access
This values should be normalized to allow separate compilation with different implementations?
Class trisycl::accessor< DataType, Dimensions, AccessMode, Target >
Implement it for images according so section 3.3.4.5
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::accessor (buffer< DataType, Dimensions, Allocator > &target_buffer, handler &command_group_handler)
Add template allocator type in all the accessor constructors in the specification or just use a more opaque Buffer type?
fix specification where access mode should be target instead
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::begin () const
Add these functions to the specification
The fact that the lambda capture make a const copy of the accessor is not yet elegantly managed... The issue is that begin()/end() dispatch is made according to the accessor constness and not from the array member constness...
try to solve it by using some enable_if on array constness?
The issue is that the end may not be known if it is implemented by a raw OpenCL cl_mem... So only provide on the device the iterators related to the start? Actually the accessor needs to know a part of the shape to have the multidimentional addressing. So this only require a size_t more...
Factor out these in a template helper
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::dimensionality
in the specification: store the dimension for user request
4 Todo List
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Should it be named data() instead?
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::get_range () const
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
It is incompatible with buffer get_size() in the spec
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Add in the specification
Add in the specification?
Add the concept of 0-dim buffer and accessor for scalar and use an implicit conversion to value_type reference to access the value with the accessor?
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::operator[] (nd_item< dimen- sionality > index)
Add in the specification because used by HPC-GPU slide 22
Member trisycl::accessor< DataType, Dimensions, AccessMode, Target >::operator[] (nd_item< dimen- sionality > index) const
Add in the specification because used by HPC-GPU slide 22
Class trisycl::buffer< T, Dimensions, Allocator >
There is a naming inconsistency in the specification between buffer and accessor on T versus datatype
Finish allocator implementation
Think about the need of an allocator when constructing a buffer from other buffers
Update the specification to have a non-const allocator for const buffer? Or do we rely on rebind_alloc<T>. But does this work with astate-full allocator?
Add constructors from arrays so that in C++17 the range and type can be infered from the constructor
Add constructors from array_ref
Member trisycl::buffer< T, Dimensions, Allocator >::buffer (shared_ptr_class< T > &host_data, const range< Dimensions > &buffer_range, trisycl::mutex_class &m, Allocator allocator={})
update the specification to replace the pointer by a reference and provide the constructor with and without a mutex
Member trisycl::buffer< T, Dimensions, Allocator >::buffer (shared_ptr_class< T > host_data, const range< Dimensions > &buffer_range, Allocator allocator={})
add this mutex-less constructor to the specification
Member trisycl::buffer< T, Dimensions, Allocator >::buffer (InputIterator start_iterator, InputIterator end←
_iterator, Allocator allocator={})
Generalize this for n-D and provide column-major and row-major initialization
a reason to have this nD is that set_final_data(weak_ptr_class<T> & finalData) is actually doing this lineariza- tion anyway
Generated by Doxygen
Allow read-only buffer construction too
update the specification to deal with forward iterators instead and rewrite back only when it is non const and output iterator at least
Allow initialization from ranges and collections à la STL
Member trisycl::buffer< T, Dimensions, Allocator >::buffer (buffer< T, Dimensions, Allocator > &b, const id< Dimensions > &base_index, const range< Dimensions > &sub_range, Allocator allocator={})
To be implemented
Member trisycl::buffer< T, Dimensions, Allocator >::get_access (handler &command_group_handler)
Do we need for an accessor to increase the reference count of a buffer object? It does make more sense for a host-side accessor.
Implement the modes and targets
Member trisycl::buffer< T, Dimensions, Allocator >::get_access ()
Implement the modes
More elegant solution
Member trisycl::buffer< T, Dimensions, Allocator >::get_range () const
rename to the equivalent from array_ref proposals? Such as size() in http://www.open-std.←
org/jtc1/sc22/wg21/docs/papers/2016/p0009r2.html
rename to something else. In http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0122r0.←
pdf it is named bytes() for example
Member trisycl::buffer< T, Dimensions, Allocator >::is_read_only () const
Add to specification
Class trisycl::context
Member trisycl::context::get_devices () const
To be implemented
Member trisycl::context::get_info () const
To be implemented
Member trisycl::context::get_platform () const
To be implemented
Use the access::mode
fix the specification to rename target that shadows template param
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::begin () const
Add these functions to the specification
The fact that the lambda capture make a const copy of the accessor is not yet elegantly managed... The issue is that begin()/end() dispatch is made according to the accessor constness and not from the array member constness...
Generated by Doxygen
try to solve it by using some enable_if on array constness?
The issue is that the end may not be known if it is implemented by a raw OpenCL cl_mem... So only provide on the device the iterators related to the start? Actually the accessor needs to know a part of the shape to have the multidimentional addressing. So this only require a size_t more...
Factor out these in a template helper
Do we need this in detail::accessor too or only in accessor?
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::dimensionality
in the specification: store the dimension for user request
Use another name, such as from C++17 committee discussions.
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::get_count () const
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::is_read_access () const
Strangely, it is not really constexpr because it is not a static method...
to move in the access::mode enum class and add to the specification ?
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::is_write_access () const
Strangely, it is not really constexpr because it is not a static method...
to move in the access::mode enum class and add to the specification ?
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::iterator
Add iterators to accessors in the specification
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::operator∗ ()
Add in the specification
Add in the specification?
Add the concept of 0-dim buffer and accessor for scalar and use an implicit conversion to value_type reference to access the value with the accessor?
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::operator[] (nd_item< di- mensionality > index)
Add in the specification because used by HPC-GPU slide 22
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::operator[] (nd_item< di- mensionality > index) const
Add in the specification because used by HPC-GPU slide 22
Member trisycl::detail::accessor< T, Dimensions, Mode, access::target::local >::value_type
in the specification: store the types for user request as STL or C++AMP
Class trisycl::detail::accessor< T, Dimensions, Mode, Target >
Use the access::mode
::buffer< T, Dimensions >> target_buffer)
fix the specification to rename target that shadows template parm
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::accessor (std::shared_ptr< detail←
::buffer< T, Dimensions >> target_buffer, handler &command_group_handler)
fix the specification to rename target that shadows template parm
Generated by Doxygen
Add these functions to the specification
The fact that the lambda capture make a const copy of the accessor is not yet elegantly managed... The issue is that begin()/end() dispatch is made according to the accessor constness and not from the array member constness...
try to solve it by using some enable_if on array constness?
The issue is that the end may not be known if it is implemented by a raw OpenCL cl_mem... So only provide on the device the iterators related to the start? Actually the accessor needs to know a part of the shape to have the multidimentional addressing. So this only require a size_t more...
Factor out these in a template helper
Do we need this in detail::accessor too or only in accessor?
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::dimensionality
in the specification: store the dimension for user request
Use another name, such as from C++17 committee discussions.
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::get_count () const
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Implement the various pointer address spaces
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::get_range () const
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Move on https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15564 and https←
://cvs.khronos.org/bugzilla/show_bug.cgi?id=14404
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::is_read_access () const
Strangely, it is not really constexpr because it is not a static method...
to move in the access::mode enum class and add to the specification ?
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::is_write_access () const
Strangely, it is not really constexpr because it is not a static method...
to move in the access::mode enum class and add to the specification ?
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::iterator
Add iterators to accessors in the specification
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::operator∗ ()
Add in the specification
Add in the specification?
Add the concept of 0-dim buffer and accessor for scalar and use an implicit conversion to value_type reference to access the value with the accessor?
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::operator[] (nd_item< dimensionality > index)
Add in the specification because used by HPC-GPU slide 22
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::operator[] (nd_item< dimensionality > index) const
Add in the specification because used by HPC-GPU slide 22
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::register_accessor ()
Double-check with the C++ committee on this issue.
Generated by Doxygen
Member trisycl::detail::accessor< T, Dimensions, Mode, Target >::value_type
in the specification: store the types for user request as STL or C++AMP
Member trisycl::detail::address_space_array< T, AS >::address_space_array (std::initializer_list< std←
::remove_extent_t< T >> list) Extend to more than 1 dimension
Class trisycl::detail::address_space_base< T, AS >
Add to the specification
Add to the specification
Class trisycl::detail::address_space_fundamental< T, AS >
Class trisycl::detail::address_space_object< T, AS >
what about T having some final methods?
Member trisycl::detail::address_space_object< T, AS >::opencl_type
Add to the specification
Add to the specification
Implement user-provided allocator
Member trisycl::detail::buffer< T, Dimensions >::buffer (const T ∗host_data, const range< Dimensions > &r)
Clarify the semantics in the spec. What happens if the host change the host_data after buffer creation?
Member trisycl::detail::buffer< T, Dimensions >::call_update_buffer_state (trisycl::context ctx, access←
::mode mode, size_t size, DataType ∗data, std::enable_if_t<!std::is_const< BaseType > ::value > ∗=0)
Use if constexpr when it is available with C++17
Member trisycl::detail::buffer< T, Dimensions >::get_destructor_future ()
Make the function private again
Member trisycl::detail::buffer< T, Dimensions >::get_size () const
rename to something else. In http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0122r0.←
pdf it is named bytes() for example
Member trisycl::detail::buffer< T, Dimensions >::∼buffer ()
To implement and deal with reference counting buffer(buffer<T, Dimensions> b, index<Dimensions> base_←
index, range<Dimensions> sub_range)
Allow CLHPP objects too?
_write_mode)
Member trisycl::detail::buffer_base::buffer_base ()
Member trisycl::detail::context::get_devices () const =0
Class trisycl::detail::host_context
Generated by Doxygen
Member trisycl::detail::host_device::get_platform () const override
Member trisycl::detail::opencl_kernel::get () const override
Improve the spec to deprecate C OpenCL host API and move to C++ instead to avoid this ugly ownership man- agement
Test error and throw. Externalize this feature in Boost.Compute?
Member trisycl::detail::opencl_kernel::single_task (std::shared_ptr< detail::task > task, std::shared_ptr< detail::queue > q) override Remove either task or q
Member trisycl::detail::opencl_queue::instance (const trisycl::device &d)
Check with SYCL committee what is the expected behaviour here about the context. Is this a new context ev- erytime, or always the same for a given device?
Member trisycl::detail::parallel_for (nd_range< Dimensions > r, ParallelForFunctor f)
Add an OpenMP implementation
Deal with incomplete work-groups
Better type the functor
Member trisycl::detail::pipe< T >::write (const T &value, bool blocking=false)
provide a && version
Member trisycl::detail::pipe_accessor< T, AccessMode, Target >::write (const value_type &value) const
provide a && version
Member trisycl::detail::pipe_reservation< PipeAccessor >::commit ()
Add to the specification that for simplicity a reservation can be commited several times but only the first one is taken into account
Member trisycl::detail::queue::∼queue ()
Member trisycl::detail::shared_ptr_implementation< Parent, Implementation >::operator< (const Parent &other) const Add this to the spec
:dimensionality
Member trisycl::detail::small_array_123< BasicType, FinalType, 2 >::small_array_123 (BasicType e)
Add to the specification of the range, id...
Member trisycl::detail::small_array_123< BasicType, FinalType, 3 >::small_array_123 (BasicType e)
Add to the specification of the range, id...
Member trisycl::detail::task::buffers_in_use
Use a set to check that some buffers are not used many times at least on writing
Member trisycl::detail::task::get_kernel ()
Member trisycl::detail::task::schedule (std::function< void(void)> f)
This is an issue if there is an exception in the kernel
Member trisycl::device::device (const device_selector &ds)
Make it non-explicit in the specification?
Member trisycl::device::get_info () const
Member trisycl::device::type () const
Member trisycl::device_selector::select_device () const
Class trisycl::device_typename_selector< DeviceType >
Member trisycl::drt::drt::code::program::p
Member trisycl::error_handler::default_handler
Member trisycl::error_handler::report_error (exception &error)=0
Add "virtual void" to the specification
Class trisycl::exception_list
Do we need to define it in SYCL or can we rely on plain C++17 one?
Member trisycl::exception_ptr
Do we need this instead of reusing directly the one from C++11?
Member trisycl::group< Dimensions >::dimensionality
Member trisycl::group< Dimensions >::get_group_range () const
Fix this comment and the specification
Member trisycl::group< Dimensions >::get_local_range () const
Add to the specification
Add to the specification
Also provide this access to the current nd_range
Member trisycl::group< Dimensions >::get_offset (int dimension) const
Add to the specification
Add to the specification
Member trisycl::group< Dimensions >::group (const id< Dimensions > &i, const nd_range< Dimensions > &ndr)
This should be private somehow, but it is used by the validation infrastructure
Member trisycl::group< Dimensions >::group ()=default
Make most of them protected, reserved to implementation
Member trisycl::group< Dimensions >::group (const nd_range< Dimensions > &ndr)
This should be private since it is only used by the triSYCL implementation
Member trisycl::group< Dimensions >::operator[] (int dimension)
In this implementation it is not const because the group<> is written in the parallel_for iterators. To fix according to the specification
Member trisycl::h_item< Dimensions >::dimensionality
Member trisycl::h_item< Dimensions >::get_item () const
Add to the specification
Member trisycl::h_item< Dimensions >::h_item (nd_range< Dimensions > ndr)
This is for the triSYCL implementation which is expected to call set_global() and set_local() later. This should be hidden to the user.
Member trisycl::h_item< Dimensions >::h_item ()=default
Make most of them protected, reserved to implementation
Member trisycl::h_item< Dimensions >::h_item (id< Dimensions > global_index, nd_range< Dimensions > ndr)
This is for validation purpose. Hide this to the programmer somehow
Member trisycl::handler::schedule_parallel_for_kernel (Kernel k, const range< N > &num_work_items)
Add host fall-back execution for parallel_for_kernel
Member trisycl::handler::set_arg (int arg_index, accessor< DataType, Dimensions, Mode, Target > &&acc_obj)
Update the specification to use a ref && to the accessor instead?
It is not that clean to have set_arg() associated to a command handler. Rethink the specification?
It seems more logical to have these methods on kernel instead
Member trisycl::handler::set_args (Ts &&... args)
_bug.cgi?id=15978 proposal
Member trisycl::handler::single_task (kernel sycl_kernel)
Add in the spec a version taking a kernel and a functor, to have host fall-back
Member trisycl::id< Dimensions >::dimensionality
Class trisycl::image< Dimensions >
Generated by Doxygen
To be moved in the specification from platform to device
Add opencl to the specification
there is no accelerator_selector and custom_accelerator
Member trisycl::info::TRISYCL_INFO_PARAM_TRAITS (info::device::image2d_max_width, size_t)
Member trisycl::item< Dimensions, with_offset >::dimensionality
add this Boost::multi_array or STL concept to the specification?
Member trisycl::item< Dimensions, with_offset >::item ()=default
Make most of them protected, reserved to implementation
Member trisycl::item< Dimensions, with_offset >::set (id< Dimensions > Index)
Move to private and add friends
Class trisycl::kernel
Member trisycl::map_allocator
: implement and clarify the specification. It looks like it is not really an allocator according the current spec
Member trisycl::nd_item< Dimensions >::dimensionality
Member trisycl::nd_item< Dimensions >::get_item () const
Add to the specification
Member trisycl::nd_item< Dimensions >::nd_item (nd_range< Dimensions > ndr)
This is for the triSYCL implementation which is expected to call set_global() and set_local() later. This should be hidden to the user.
Member trisycl::nd_item< Dimensions >::nd_item ()=default
Make most of them protected, reserved to implementation
Member trisycl::nd_item< Dimensions >::nd_item (id< Dimensions > global_index, nd_range< Dimen- sions > ndr)
This is for validation purpose. Hide this to the programmer somehow
Class trisycl::nd_range< Dimensions >
Member trisycl::nd_range< Dimensions >::dimensionality
Member trisycl::nd_range< Dimensions >::get_offset () const
get_offset() is lacking in the specification
Class trisycl::non_cl_error
Member trisycl::pipe_reservation< PipeAccessor >::pipe_reservation (detail::pipe_reservation< accessor_detail > &&pr)
Generated by Doxygen
Member trisycl::platform::get_info () const
The implementation is quite minimal for now. :-)
All the queue methods should return a queue& instead of void to it is possible to chain opoerations
Member trisycl::queue::queue (const boost::compute::command_queue &q, async_handler ah=nullptr)
Deal with handler
Member trisycl::queue::submit (Handler_Functor cgf)
Add in the spec an implicit conversion of event to queue& so it is possible to chain operations on the queue
Class trisycl::range< Dimensions >
use std::size_t Dimensions instead of int Dimensions in the specification?
add to the specification this default parameter value?
add to the specification some way to specify an offset?
Namespace trisycl::trisycl
Member trisycl::vendor::trisycl::scope::detail::device< DeviceStorage, ScopedPlatform >::scope_storage
For now it is allocated on the host in this CPU emulation but a device compiler and runtime can create this on a real device
Member trisycl::vendor::trisycl::scope::detail::platform< PlatformStorage >::scope_storage
For now it is allocated on the host in this CPU emulation but a device compiler and run time can create this on a real device
Member trisycl::vendor::trisycl::scope::detail::queue< Device, QueueStorage >::scope_storage
For now it is allocated on the host in this CPU emulation but a device compiler and run time can create this on a real device
Class trisycl::vendor::xilinx::partition::block< ElmInEachPhyMem, PDim >
Deal with multi-dimension array. Now, since we can only deal with 1-dim, PDim is set to 1 by default.
Class trisycl::vendor::xilinx::partition::complete< PDim >
Deal with multi-dimension array. Now, since we can only deal with 1-dim, PDim is set to 1 by default.
Class trisycl::vendor::xilinx::partition::cyclic< PhyMemNum, PDim >
Deal with multi-dimension array. Now, since we can only deal with 1-dim, PDim is set to 1 by default.
Class trisycl::vendor::xilinx::partition_array< ValueType, Size, PartitionType >
Deal with multi-dimension array.
::initializer_list< SourceBasicType > l)
Find a way to specialize this with a safer implementation when the size of src is at least constexpr This does not work... static_assert(l.size() == Size);
Member trisycl::vendor::xilinx::partition_array< ValueType, Size, PartitionType >::partition_array (const SomeContainer &src)
Find a way to specialize this with a safer implementation when the size of src is at least constexpr
Generated by Doxygen
14 Todo List
To be implemented
Member TRISYCL_ParallelForKernel_RANGE (N)
Add in the spec a version taking a kernel and a functor, to have host fall-back
Think to a cleaner solution
Think to a cleaner solution
Remove either task or q
Generated by Doxygen
Here is a list of all modules:
Data access and storage in SYCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Dealing with OpenCL address spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Platforms, contexts, devices and queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Helpers to do array and tuple conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Some helpers for the implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Debugging and tracing support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Manage default configuration and types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Opencl_spir_helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Device-side runtime implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Expressing parallelism through kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Vector types in SYCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 triSYCL extension for storage scopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 Xilinx vendor extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
16 Module Index
Generated by Doxygen
Here is a list of all namespaces with brief descriptions:
cl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 cl::sycl
The official SYCL 1.2.1 specification exposes the API in the cl::sycl namespace . . . . . . . . 583 std . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 sycl
Expose the SYCL API directly in the sycl namespace . . . . . . . . . . . . . . . . . . . . . . 583 trisycl
The vector type to be used as SYCL vector . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 trisycl::access
Describe the type of access by kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 trisycl::detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 trisycl::detail::spir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 trisycl::drt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 trisycl::drt::drt
The device-side runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 trisycl::drt::drt::code
The binary code of the kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 trisycl::extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 trisycl::extension::ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 trisycl::info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 trisycl::native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::property::queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::trisycl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::vendor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::vendor::trisycl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::vendor::trisycl::scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 trisycl::vendor::trisycl::scope::detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 trisycl::vendor::xilinx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 trisycl::vendor::xilinx::partition
Kind of array partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
18 Namespace Index
Generated by Doxygen
This inheritance list is sorted roughly, but not completely, alphabetically:
trisycl::detail::accessor_base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::address_space_base< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
trisycl::detail::address_space_object< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 trisycl::detail::address_space_variable< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
trisycl::detail::address_space_array< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 trisycl::detail::address_space_fundamental< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . 209
trisycl::detail::address_space_ptr< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
trisycl::detail::small_array< DataType, ::trisycl::vec< DataType, NumElements >, NumElements > . . 354 trisycl::detail::vec< DataType, NumElements > . . . . . . . . . . . . . . . . . . . . . . . . . . . 757 trisycl::detail::vec< DataType, 1 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 1 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 trisycl::detail::vec< DataType, 16 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 16 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 trisycl::detail::vec< DataType, 2 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 2 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 trisycl::detail::vec< DataType, 3 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 3 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 trisycl::detail::vec< DataType, 4 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 4 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 trisycl::detail::vec< DataType, 8 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
trisycl::vec< DataType, 8 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
trisycl::detail::small_array< BasicType, FinalType, Dims, EnableArgsConstructor > . . . . . . . . . . . 354 trisycl::vendor::xilinx::partition::block< ElmInEachPhyMem, PDim > . . . . . . . . . . . . . . . . . . . . 626 trisycl::detail::bool_pack<... > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 trisycl::detail::cache< Key, Value > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_command_queue, trisycl::detail::opencl_queue > . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_context, trisycl::detail::opencl_context > . . . . . . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_device_id, trisycl::detail::opencl_device > . . . . . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_event, trisycl::detail::opencl_event > . . . . . . . . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_kernel, trisycl::detail::opencl_kernel > . . . . . . . . . . . . . . . . . . . . . . 628 trisycl::detail::cache< cl_platform_id, trisycl::detail::opencl_platform > . . . . . . . . . . . . . . . . . . 628 trisycl::vendor::trisycl::scope::queue< Device, QueueStorage >::command_group< CGH > . . . . . . . 632 trisycl::vendor::xilinx::partition::complete< PDim > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 trisycl::detail::container_element_aspect< T > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 trisycl::detail::container_element_aspect< Accessor::value_type > . . . . . . . . . . . . . . . . . . . . 354
trisycl::drt::drt::accessor< Accessor > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
trisycl::detail::container_element_aspect< DataType > . . . . . . . . . . . . . . . . . . . . . . . . . . 354
trisycl::detail::context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
trisycl::detail::accessor< T, Dimensions, Mode, access::target::local > . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< accessor< T, Dimensions, Mode, Target > > . . . . . . . . . . . . . . . . . . . 372
trisycl::detail::accessor< T, Dimensions, Mode, Target > . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< buffer< T, Dimensions > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
trisycl::detail::buffer< T, Dimensions > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::buffer< T, Dimensions, Allocator > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< buffer_waiter< T, Dimensions, Allocator > > . . . . . . . . . . . . . . . . . . . . 372
trisycl::detail::buffer_waiter< T, Dimensions, Allocator > . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< detail::event > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
trisycl::detail::pipe_accessor< DataType, AccessMode, access::target::blocking_pipe > . . . . . . . . 31 trisycl::accessor< DataType, 1, AccessMode, access::target::blocking_pipe > . . . . . . . . . . . 31
trisycl::detail::pipe_accessor< DataType, AccessMode, access::target::pipe > . . . . . . . . . . . . . 31 trisycl::accessor< DataType, 1, AccessMode, access::target::pipe > . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< detail::pipe_accessor< T, AccessMode, Target > > . . . . . . . . . . . . . . . . 372
trisycl::detail::pipe_accessor< T, AccessMode, Target > . . . . . . . . . . . . . . . . . . . . . . . . . 31
Generated by Doxygen
trisycl::detail::host_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 trisycl::detail::opencl_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
trisycl::detail::debug< pipe< T > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::detail::pipe< T > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 trisycl::pipe< T > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< pipe< value_type > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::detail::pipe< value_type > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< queue > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
trisycl::detail::debug< static_pipe< T, Capacity > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::static_pipe< T, Capacity > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::debug< task > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::detail::task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
trisycl::vendor::trisycl::scope::detail::device< DeviceStorage, ScopedPlatform > . . . . . . . . . . . . . 546 trisycl::detail::device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
trisycl::detail::display_vector< range< Dimensions > > . . . . . . . . . . . . . . . . . . . . . . . . . . 372 trisycl::detail::small_array< std::size_t, range< Dimensions >, Dims > . . . . . . . . . . . . . . . . . 354
Generated by Doxygen
22 Hierarchical Index
trisycl::detail::task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 equality_comparable
trisycl::error_handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::trisycl::default_error_handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
trisycl::exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::async_exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::cl_exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::device_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
trisycl::compile_program_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::feature_not_supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::invalid_object_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::link_program_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::memory_allocation_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::platform_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 trisycl::profiling_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
trisycl::is_wrapper< T > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 trisycl::half . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 std::hash< trisycl::buffer< T, Dimensions, Allocator > > . . . . . . . . . . . . . . . . . . . . . . . . . . 655 std::hash< trisycl::context > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 std::hash< trisycl::device > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 std::hash< trisycl::event > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 std::hash< trisycl::kernel > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 std::hash< trisycl::platform > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 std::hash< trisycl::queue > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 trisycl::image< Dimensions > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 trisycl::vendor::xilinx::partition::none . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 trisycl::detail::ocl_type< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 trisycl::detail::ocl_type< T, access::address_space::constant_space > . . . . . . . . . . . . . . . . . . 209 trisycl::detail::ocl_type< T, access::address_space::global_space > . . . . . . . . . . . . . . . . . . . 209 trisycl::detail::ocl_type< T, access::address_space::local_space > . . . . . . . . . . . . . . . . . . . . 209 trisycl::detail::ocl_type< T, access::address_space::private_space > . . . . . . . . . . . . . . . . . . . 209
Generated by Doxygen
trisycl::detail::host_platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 trisycl::detail::opencl_platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
trisycl::drt::drt::code::program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 trisycl::detail::property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
trisycl::property::queue::enable_profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 trisycl::property_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
trisycl::detail::host_context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 trisycl::detail::singleton< host_device > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
trisycl::detail::host_device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 trisycl::detail::singleton< host_event > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
trisycl::detail::host_event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 trisycl::detail::singleton< host_platform > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
trisycl::detail::host_platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 trisycl::vendor::trisycl::scope::detail::storage_type_trait< ScopedType, StorageType > . . . . . . . . . . 739 trisycl::vendor::trisycl::scope::detail::storage_type_trait< ScopedType, typename ScopedType::storage←
T, Dimensions, Allocator > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 trisycl::buffer< T, Dimensions, Allocator > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::shared_ptr_implementation< buffer_waiter< T, Dimensions, Allocator >, detail::buffer< T, Dimensions > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
trisycl::context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 trisycl::detail::shared_ptr_implementation< device, detail::device > . . . . . . . . . . . . . . . . . . . 732
trisycl::device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 trisycl::detail::shared_ptr_implementation< device< DeviceStorage, ScopedPlatform >, detail:←
:device< DeviceStorage, ScopedPlatform > > . . . . . . . . . . . . . . . . . . . . . . . . . 732 trisycl::vendor::trisycl::scope::device< DeviceStorage, ScopedPlatform > . . . . . . . . . . . . . . 546
trisycl::detail::shared_ptr_implementation< event, detail::event > . . . . . . . . . . . . . . . . . . . . 732 trisycl::event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
trisycl::detail::shared_ptr_implementation< kernel, detail::kernel > . . . . . . . . . . . . . . . . . . . 732 trisycl::kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
trisycl::detail::shared_ptr_implementation< platform, detail::platform > . . . . . . . . . . . . . . . . . 732 trisycl::platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
QueueStorage > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 trisycl::vendor::trisycl::scope::queue< Device, QueueStorage > . . . . . . . . . . . . . . . . . . . 546
trisycl::detail::shared_ptr_implementation< static_pipe< T, Capacity >, detail::pipe< T > > . . . . . . 732 trisycl::static_pipe< T, Capacity > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
trisycl::detail::shared_ptr_implementation< Parent, Implementation > . . . . . . . . . . . . . . . . . . 732 type
trisycl::detail::address_space_object< T, AS > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 trisycl::vec< typename, int > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 vector
trisycl::exception_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::accessor< DataType, Dimensions, AccessMode, Target > > . . . . . . . . . . . . ?? shared_ptr< detail::buffer< T, Dimensions > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::buffer_waiter< T, Dimensions, Allocator > > . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::context > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::device > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::device< DeviceStorage, ScopedPlatform > > . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::event > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::kernel > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::pipe< T > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::platform > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::platform< PlatformStorage > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::program > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::queue > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< detail::queue< Device, QueueStorage > > . . . . . . . . . . . . . . . . . . . . . . . . . ?? shared_ptr< trisycl::detail::pipe< DataType > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? static const size_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ?? static constexpr bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ??
Generated by