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