Bolt  1.3
C++ template library with support for OpenCL
List of Supported Functions

Table of Contents

Supported Functions and Paths

Bolt function is designed to be executed with four code paths (OpenCL™, C++ AMP, Multicore CPU and Serial CPU). The default mode is "Automatic" which means it will go into GPU path first, then Multicore CPU (Intel TBB), then SerialCpu, control will go to other paths only if the selected one is not found. Forcing the mode to any code path will run the function with that code path. All Bolt functions have OpenCL™, Multicore CPU and Serial path implementation.

List of Supported Function and Code Paths

API OpenCL™ GPU AMP Multicore TBB Serial
constant_iterator YES YES YES YES
copy YES YES YES YES
copy_n YES YES YES YES
count YES YES YES YES
count_if YES YES YES YES
counting_iterator YES YES YES YES
device_vector YES YES YES YES
exclusive_scan YES YES YES YES
exclusive_scan_by_key YES YES YES YES
fill YES YES YES YES
fill_n YES YES YES YES
generate YES YES YES YES
generate_n YES YES YES YES
inclusive_scan YES YES YES YES
inclusive_scan_by_key YES YES YES YES
inner_product YES YES YES YES
max_element YES YES YES YES
min_element YES YES YES YES
permutation_iterator YES1 YES2 YES3 YES3
reduce YES YES YES YES
reduce_by_key YES YES YES YES
sort YES YES YES YES
sort_by_key YES YES YES YES
stable_sort YES YES YES YES
stable_sort_by_key YES YES YES YES
transform YES YES YES YES
transform_exclusive_scan YES YES YES YES
transform_inclusive_scan YES YES YES YES
transform_iterator YES YES2 YES YES
transform_reduce YES YES YES YES
binary_search YES YES YES YES
merge YES YES YES YES
scatter YES YES YES YES
scatter_if YES YES YES YES
gather YES YES YES YES
gather_if YES YES YES YES
copy_if NO YES YES YES
find NO YES YES YES
find_if NO YES YES YES
find_if_not NO YES YES YES
for_each NO YES YES YES
for_each_n NO YES YES YES
all_of NO YES YES YES
any_of NO YES YES YES
none_of NO YES YES YES
remove NO YES YES YES
remove_if NO YES YES YES
remove_copy NO YES YES YES
remove_copy_if NO YES YES YES
replace NO YES YES YES
replace_if NO YES YES YES
replace_copy NO YES YES YES
replace_copy_if NO YES YES YES
unique NO YES YES YES
unique_copy NO YES YES YES
transform_if NO YES YES YES

Limitations

1 - Works with device_vector iterators, and transform routine only
2 - Works only with device_vector iterators
3 - Supported on C++ AMP path, but not on OpenCL path. Slower performance expected