STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Namespaces | Macros | Functions
amp.h File Reference
#include <crtdbg.h>
#include <vector>
#include <iterator>
#include <future>
#include <amprt.h>
#include <xxamp.h>
#include <type_traits>
#include <xxamp_inl.h>

Go to the source code of this file.

Classes

class  Concurrency::index< _Rank >
 Define an N-dimensional index point; which may also be viewed as a vector based at the origin in N-space. More...
 
class  Concurrency::extent< _Rank >
 The extent<N> type represents an N-dimensional vector of int which specifies the bounds of an N-dimensional space with an origin of 0. The values in the coordinate vector are ordered from most-significant to least-significant. Thus, in 2-dimensional space, the extent vector (5,3) represents a space with 5 rows and 3 columns. More...
 
struct  Concurrency::details::_Is_extent_or_index< T >
 
struct  Concurrency::details::_Is_extent_or_index< index< N > >
 
struct  Concurrency::details::_Is_extent_or_index< extent< N > >
 
class  Concurrency::tile_barrier
 The tile_barrier class is a capability class that is only creatable by the system, and passed to a tiled parallel_for_each lambda as part of the tiled_index parameter. It provides wait methods whose purpose is to synchronize execution of threads running within the thread group (tile). More...
 
class  Concurrency::_Tiled_index_base< _Rank >
 A _Tiled_index_base is the base class of all three kinds of tiled_index to share the common code. More...
 
class  Concurrency::tiled_index< _Dim0, _Dim1, _Dim2 >
 A tiled_index is a set of indices of 1 to 3 dimensions which have been subdivided into 1-, 2-, or 3-dimensional tiles in a tiled_extent. It has three specialized forms: tiled_index<_Dim0>, tiled_index<_Dim0, _Dim1>, and tiled_index<_Dim0, _Dim1, _Dim2>, where _Dim0-2 specify the length of the tile along the each dimension, with _Dim0 being the most-significant dimension and _Dim2 being the least-significant. More...
 
class  Concurrency::tiled_index< _Dim0, _Dim1, 0 >
 
class  Concurrency::tiled_index< _Dim0, 0, 0 >
 
class  Concurrency::tiled_extent< _Dim0, _Dim1, _Dim2 >
 A tiled_extent is an extent of 1 to 3 dimensions which also subdivides the extent space into 1-, 2-, or 3-dimensional tiles. It has three specialized forms: tiled_extent<_Dim0>, tiled_extent<_Dim0,_Dim1>, and tiled_extent<_Dim0,_Dim1,_Dim2>, where _Dim0-2 specify the length of the tile along each dimension, with _Dim0 being the most-significant dimension and _Dim2 being the least-significant. More...
 
class  Concurrency::tiled_extent< _Dim0, _Dim1, 0 >
 
class  Concurrency::tiled_extent< _Dim0, 0, 0 >
 
class  Concurrency::details::_Array_view_shape< _Rank, _Element_size >
 
class  Concurrency::details::_Array_view_base< _Rank, _Element_size >
 
struct  Concurrency::details::_Is_container< _Container >
 
class  Concurrency::array_view< _Value_type, _Rank >
 An array_view is an N-dimensional view over data held in another container (such as array<T,N> or other container. It exposes an indexing interface congruent to that of array<T,N>). More...
 
class  Concurrency::array_view< const _Value_type, _Rank >
 
class  Concurrency::array< _Value_type, _Rank >
 An array is a multi-dimensional data aggregate on a accelerator_view. More...
 

Namespaces

 Concurrency
 The Concurrency namespace provides classes and functions that provide access to the Concurrency Runtime, a concurrent programming framework for C++. For more information, see Concurrency Runtime.
 
 Concurrency::details
 
 Concurrency::direct3d
 

Macros

#define _AMP_H
 
#define AS_UINT_PTR(p)   reinterpret_cast<unsigned int *>(p)
 
#define AS_UINT(v)   *(reinterpret_cast<unsigned int *>(&(v)))
 
#define AS_INT(v)   *(reinterpret_cast<int *>(&(v)))
 
#define AS_FLOAT(v)   *(reinterpret_cast<float *>(&(v)))
 

Functions

template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, bool >::type Concurrency::operator== (const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, bool >::type Concurrency::operator!= (const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator+ (const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator- (const _Tuple_type< _Rank > &_Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator+ (const _Tuple_type< _Rank > &_Lhs, typename _Tuple_type< _Rank >::value_type _Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator+ (typename _Tuple_type< _Rank >::value_type _Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator- (const _Tuple_type< _Rank > &_Lhs, typename _Tuple_type< _Rank >::value_type _Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator- (typename _Tuple_type< _Rank >::value_type _Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator* (const _Tuple_type< _Rank > &_Lhs, typename _Tuple_type< _Rank >::value_type _Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator* (typename _Tuple_type< _Rank >::value_type _Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator/ (const _Tuple_type< _Rank > &_Lhs, typename _Tuple_type< _Rank >::value_type _Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator/ (typename _Tuple_type< _Rank >::value_type _Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator% (const _Tuple_type< _Rank > &_Lhs, typename _Tuple_type< _Rank >::value_type _Rhs) __GPU
 
template<int _Rank, template< int > class _Tuple_type>
std::enable_if< details::_Is_extent_or_index< _Tuple_type< _Rank > >::value, _Tuple_type< _Rank > >::type Concurrency::operator% (typename _Tuple_type< _Rank >::value_type _Lhs, const _Tuple_type< _Rank > &_Rhs) __GPU
 
template<int _Old_element_size, int _New_element_size>
int Concurrency::details::_Calculate_reinterpreted_size (int _Old_size) __GPU_ONLY
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array< _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array into the destination array. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array< _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array into the destination array. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (InputIterator _SrcFirst, InputIterator _SrcLast, array< _Value_type, _Rank > &_Dest)
 Asynchronously copies the elements in the range [_SrcFirst, _SrcLast) into the destination array. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (InputIterator _SrcFirst, InputIterator _SrcLast, array< _Value_type, _Rank > &_Dest)
 Copies the elements in the range [_SrcFirst, _SrcLast) into the destination array. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (InputIterator _SrcFirst, array< _Value_type, _Rank > &_Dest)
 Asynchronously copies the elements beginning at _SrcFirst into the destination array. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (InputIterator _SrcFirst, array< _Value_type, _Rank > &_Dest)
 Copies the elements beginning at _SrcFirst into the destination array. More...
 
template<typename OutputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 Asynchronously copies the contents of the array into the destination beginning at _DestIter. More...
 
template<typename OutputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (const array< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 Copies the contents of the array into the destination beginning at _DestIter. More...
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array< _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array into the destination array_view. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array< _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array into the destination array_view. More...
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array_view< const _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array_view into the destination array. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array_view< const _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array_view into the destination array. More...
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array_view< _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array_view into the destination array. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array_view< _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array_view into the destination array. More...
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array_view< const _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array_view into the destination array_view. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array_view< const _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array_view into the destination array_view. More...
 
template<typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array_view< _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Asynchronously copies the contents of the source array_view into the destination array_view. More...
 
template<typename _Value_type , int _Rank>
void Concurrency::copy (const array_view< _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 Copies the contents of the source array_view into the destination array_view. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (InputIterator _SrcFirst, InputIterator _SrcLast, const array_view< _Value_type, _Rank > &_Dest)
 Asynchronously copies the elements in the range [_SrcFirst, _SrcLast) into the destination array_view. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (InputIterator _SrcFirst, const array_view< _Value_type, _Rank > &_Dest)
 Asynchronously copies the elements beginning at _SrcFirst into the destination array_view. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (InputIterator _SrcFirst, InputIterator _SrcLast, const array_view< _Value_type, _Rank > &_Dest)
 Copies the elements in the range [_SrcFirst, _SrcLast) into the destination array_view. More...
 
template<typename InputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (InputIterator _SrcFirst, const array_view< _Value_type, _Rank > &_Dest)
 Copies the contents of an STL container into the destination array_view. More...
 
template<typename OutputIterator , typename _Value_type , int _Rank>
concurrency::completion_future Concurrency::copy_async (const array_view< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 Asynchronously copies the contents of the array_view into the destination beginning at _DestIter. More...
 
template<typename OutputIterator , typename _Value_type , int _Rank>
void Concurrency::copy (const array_view< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 Copies the contents of the array_view into the destination beginning at _DestIter. More...
 
template<typename _Value_type , int _Rank>
array< _Value_type, _Rank > Concurrency::direct3d::make_array (const Concurrency::extent< _Rank > &_Extent, const Concurrency::accelerator_view &_Av, _In_ IUnknown *_D3D_buffer) __CPU_ONLY
 Create an array from a D3D buffer interface pointer. More...
 
template<typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array< _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 
template<typename InputIterator , typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (InputIterator _SrcFirst, InputIterator _SrcLast, array< _Value_type, _Rank > &_Dest)
 
template<typename OutputIterator , typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 
template<typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array< _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 
template<typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array_view< const _Value_type, _Rank > &_Src, array< _Value_type, _Rank > &_Dest)
 
template<typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array_view< const _Value_type, _Rank > &_Src, const array_view< _Value_type, _Rank > &_Dest)
 
template<typename InputIterator , typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (InputIterator _SrcFirst, InputIterator _SrcLast, const array_view< _Value_type, _Rank > &_Dest)
 
template<typename OutputIterator , typename _Value_type , int _Rank>
_Event Concurrency::details::_Copy_async_impl (const array_view< _Value_type, _Rank > &_Src, OutputIterator _DestIter)
 
template<typename _Value_type , int _Rank>
_Ret_ IUnknown * Concurrency::direct3d::get_buffer (const array< _Value_type, _Rank > &_Array) __CPU_ONLY
 Get the D3D buffer interface underlying an array. More...
 
int Concurrency::atomic_fetch_add (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Performs an atomic addition of _Value to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_add (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Performs an atomic addition of _Value to the memory location pointed to by _Dest More...
 
int Concurrency::atomic_fetch_sub (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Performs an atomic subtraction of _Value from the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_sub (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Performs an atomic subtraction of _Value from the memory location pointed to by _Dest More...
 
int Concurrency::atomic_fetch_inc (_Inout_ int *_Dest) __GPU_ONLY
 Performs an atomic increment to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_inc (_Inout_ unsigned int *_Dest) __GPU_ONLY
 Performs an atomic increment to the memory location pointed to by _Dest More...
 
int Concurrency::atomic_fetch_dec (_Inout_ int *_Dest) __GPU_ONLY
 Performs an atomic decrement to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_dec (_Inout_ unsigned int *_Dest) __GPU_ONLY
 Performs an atomic decrement to the memory location pointed to by _Dest More...
 
int Concurrency::atomic_exchange (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Sets the value of location pointed to by _Dest to _Value as an atomic operation More...
 
unsigned int Concurrency::atomic_exchange (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Sets the value of location pointed to by _Dest to _Value as an atomic operation More...
 
float Concurrency::atomic_exchange (_Inout_ float *_Dest, float _Value) __GPU_ONLY
 Sets the value of location pointed to by _Dest to _Value as an atomic operation More...
 
bool Concurrency::atomic_compare_exchange (_Inout_ int *_Dest, _Inout_ int *_Expected_value, int _Value) __GPU_ONLY
 Atomically, compares the value pointed to by _Dest for equality with that pointed to by _Expected_value, and if true, returns true and replaces the value with _Value, and if false, returns false and updates the value pointed to by _Expected_value with the value pointed to by _Dest More...
 
bool Concurrency::atomic_compare_exchange (_Inout_ unsigned int *_Dest, _Inout_ unsigned int *_Expected_value, unsigned int _Value) __GPU_ONLY
 Atomically, compares the value pointed to by _Dest for equality with that pointed to by _Expected_value, and if true, returns true and replaces the value with _Value, and if false, returns false and updates the value pointed to by _Expected_value with the value pointed to by _Dest More...
 
int Concurrency::atomic_fetch_max (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Atomically computes the maximum of _Value and the value of the memory location pointed to by _Dest, and stores the maximum value to the memory location More...
 
unsigned int Concurrency::atomic_fetch_max (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Atomically computes the maximum of _Value and the value of the memory location pointed to by _Dest, and stores the maximum value to the memory location More...
 
int Concurrency::atomic_fetch_min (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Atomically computes the minimum of _Value and the value of the memory location pointed to by _Dest, and stores the minimum value to the memory location More...
 
unsigned int Concurrency::atomic_fetch_min (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Atomically computes the minimum of _Value and the value of the memory location pointed to by _Dest, and stores the minimum value to the memory location More...
 
int Concurrency::atomic_fetch_and (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Performs an atomic bitwise and operation of _Value to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_and (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Performs an atomic bitwise and operation of _Value to the memory location pointed to by _Dest More...
 
int Concurrency::atomic_fetch_or (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Performs an atomic bitwise or operation of _Value to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_or (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Performs an atomic bitwise or operation of _Value to the memory location pointed to by _Dest More...
 
int Concurrency::atomic_fetch_xor (_Inout_ int *_Dest, int _Value) __GPU_ONLY
 Performs an atomic bitwise xor operation of _Value to the memory location pointed to by _Dest More...
 
unsigned int Concurrency::atomic_fetch_xor (_Inout_ unsigned int *_Dest, unsigned int _Value) __GPU_ONLY
 Performs an atomic bitwise xor operation of _Value to the memory location pointed to by _Dest More...
 
template<int _Rank, typename _Kernel_type >
void Concurrency::parallel_for_each (const extent< _Rank > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain on an accelerator_view. The accelerator_view is determined from the arrays and/or array_views captured by the kernel function, or if no accelerator_view can be derived, the default is chosen. More...
 
template<int _Dim0, int _Dim1, int _Dim2, typename _Kernel_type >
void Concurrency::parallel_for_each (const tiled_extent< _Dim0, _Dim1, _Dim2 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 3-dimensional regions. The accelerator is determined from the arrays and/or array_views captured by the kernel function, or if no accelerator can be derived, the default is chosen. More...
 
template<int _Dim0, int _Dim1, typename _Kernel_type >
void Concurrency::parallel_for_each (const tiled_extent< _Dim0, _Dim1 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 2-dimensional regions. The accelerator is determined from the arrays and/or array_views captured by the kernel function, or if no accelerator can be derived, the default is chosen. More...
 
template<int _Dim0, typename _Kernel_type >
void Concurrency::parallel_for_each (const tiled_extent< _Dim0 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 1-dimensional regions. The accelerator is determined from the arrays and/or array_views captured by the kernel function, or if no accelerator can be derived, the default is chosen. More...
 
template<int _Rank, typename _Kernel_type >
void Concurrency::parallel_for_each (const accelerator_view &_Accl_view, const extent< _Rank > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain on an accelerator. More...
 
template<int _Dim0, int _Dim1, int _Dim2, typename _Kernel_type >
void Concurrency::parallel_for_each (const accelerator_view &_Accl_view, const tiled_extent< _Dim0, _Dim1, _Dim2 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 3-dimensional regions. More...
 
template<int _Dim0, int _Dim1, typename _Kernel_type >
void Concurrency::parallel_for_each (const accelerator_view &_Accl_view, const tiled_extent< _Dim0, _Dim1 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 2-dimensional regions. More...
 
template<int _Dim0, typename _Kernel_type >
void Concurrency::parallel_for_each (const accelerator_view &_Accl_view, const tiled_extent< _Dim0 > &_Compute_domain, const _Kernel_type &_Kernel)
 Invokes a parallel computation of a kernel function over a compute domain that has been tiled into 1-dimensional regions. More...
 
void Concurrency::direct3d_abort () __GPU_ONLY
 
void Concurrency::direct3d_errorf (const char *,...) __GPU_ONLY
 
void Concurrency::direct3d_printf (const char *,...) __GPU_ONLY
 
void Concurrency::all_memory_fence (const tile_barrier &_Barrier) __GPU_ONLY
 Memory fences and tile barriers. More...
 
void Concurrency::global_memory_fence (const tile_barrier &_Barrier) __GPU_ONLY
 Ensures that global memory accesses are visible to other threads in the thread tile, and are executed according to program order More...
 
void Concurrency::tile_static_memory_fence (const tile_barrier &_Barrier) __GPU_ONLY
 Ensures that tile_static memory accesses are visible to other threads in the thread tile, and are executed according to program order More...
 
int Concurrency::direct3d::abs (int _X) __GPU_ONLY
 Returns the absolute value of the argument More...
 
float Concurrency::direct3d::clamp (float _X, float _Min, float _Max) __GPU_ONLY
 Clamps _X to the specified _Min and _Max range More...
 
int Concurrency::direct3d::clamp (int _X, int _Min, int _Max) __GPU_ONLY
 Clamps _X to the specified _Min and _Max range More...
 
unsigned int Concurrency::direct3d::countbits (unsigned int _X) __GPU_ONLY
 Counts the number of set bits in _X More...
 
int Concurrency::direct3d::firstbithigh (int _X) __GPU_ONLY
 Gets the location of the first set bit in _X, starting from the highest order bit and working downward More...
 
int Concurrency::direct3d::firstbitlow (int _X) __GPU_ONLY
 Gets the location of the first set bit in _X, starting from the lowest order bit and working upward More...
 
int Concurrency::direct3d::imax (int _X, int _Y) __GPU_ONLY
 Determine the maximum numeric value of the arguments More...
 
int Concurrency::direct3d::imin (int _X, int _Y) __GPU_ONLY
 Determine the minimum numeric value of the arguments More...
 
unsigned int Concurrency::direct3d::umax (unsigned int _X, unsigned int _Y) __GPU_ONLY
 Determine the maximum numeric value of the arguments More...
 
unsigned int Concurrency::direct3d::umin (unsigned int _X, unsigned int _Y) __GPU_ONLY
 Determine the minimum numeric value of the arguments More...
 
float Concurrency::direct3d::mad (float _X, float _Y, float _Z) __GPU_ONLY
 Performs an arithmetic multiply/add operation on three arguments: _X * _Y + _Z More...
 
double Concurrency::direct3d::mad (double _X, double _Y, double _Z) __GPU_ONLY
 Performs an arithmetic multiply/add operation on three arguments: _X * _Y + _Z More...
 
int Concurrency::direct3d::mad (int _X, int _Y, int _Z) __GPU_ONLY
 Performs an arithmetic multiply/add operation on three arguments: _X * _Y + _Z More...
 
unsigned int Concurrency::direct3d::mad (unsigned int _X, unsigned int _Y, unsigned int _Z) __GPU_ONLY
 Performs an arithmetic multiply/add operation on three arguments: _X * _Y + _Z More...
 
float Concurrency::direct3d::noise (float _X) __GPU_ONLY
 Generates a random value using the Perlin noise algorithm More...
 
float Concurrency::direct3d::radians (float _X) __GPU_ONLY
 Converts _X from degrees to radians More...
 
float Concurrency::direct3d::rcp (float _X) __GPU_ONLY
 Calculates a fast, approximate reciprocal of the argument More...
 
unsigned int Concurrency::direct3d::reversebits (unsigned int _X) __GPU_ONLY
 Reverses the order of the bits in _X More...
 
float Concurrency::direct3d::saturate (float _X) __GPU_ONLY
 Clamps _X within the range of 0 to 1 More...
 
int Concurrency::direct3d::sign (int _X) __GPU_ONLY
 Returns the sign of the argument More...
 
float Concurrency::direct3d::smoothstep (float _Min, float _Max, float _X) __GPU_ONLY
 Returns a smooth Hermite interpolation between 0 and 1, if _X is in the range [_Min, _Max]. More...
 
float Concurrency::direct3d::step (float _Y, float _X) __GPU_ONLY
 Compares two values, returning 0 or 1 based on which value is greater More...
 

Macro Definition Documentation

#define _AMP_H
#define AS_FLOAT (   v)    *(reinterpret_cast<float *>(&(v)))
#define AS_INT (   v)    *(reinterpret_cast<int *>(&(v)))
#define AS_UINT (   v)    *(reinterpret_cast<unsigned int *>(&(v)))
#define AS_UINT_PTR (   p)    reinterpret_cast<unsigned int *>(p)