100 #if !defined(__CUDACC_RTC__)   107 #include <functional>     109 #if (!defined(_MSC_VER) && (__cplusplus >= 201103L)) || (defined(_MSC_VER) && (_MS_VER >= 1500))   110 #include <type_traits>     120 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)   121 #define CUTLASS_OS_WINDOWS   132 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))   142 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1310))   149 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))   150 #ifndef static_assert   151 #define __platform_cat_(a, b) a##b   152 #define __platform_cat(a, b) __platform_cat_(a, b)   153 #define static_assert(__e, __m) typedef int __platform_cat(AsSeRt, __LINE__)[(__e) ? 1 : -1]   163 #define __NV_STD_MAX(a, b) (((b) > (a)) ? (b) : (a))   168 #define __NV_STD_MIN(a, b) (((b) < (a)) ? (b) : (a))   182 template <
typename T>
   184   return (b < a) ? b : a;
   188 template <
typename T>
   190   return (a < b) ? b : a;
   193 #if !defined(__CUDACC_RTC__)   200 template <
class T1, 
class T2>
   202   return (lhs.first == rhs.first) && (lhs.second == rhs.second);
   205 template <
class T1, 
class T2>
   207   return (lhs.first != rhs.first) && (lhs.second != rhs.second);
   210 template <
class T1, 
class T2>
   212   return (lhs.first < rhs.first) ? 
true : (rhs.first < lhs.first) ? 
false   213                                                                   : (lhs.second < rhs.second);
   216 template <
class T1, 
class T2>
   221 template <
class T1, 
class T2>
   226 template <
class T1, 
class T2>
   231 template <
class T1, 
class T2>
   233   std::pair<T1, T2> retval;
   252 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))   255 template <
typename value_t, value_t V>
   259 template <
typename value_t, value_t V>
   261   static const value_t value = V;
   273 using std::integral_constant;
   284 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus <= 201402L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))   292 using std::bool_constant;
   296 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1700))   303 using std::nullptr_t;
   311 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))   314 template <
bool C, 
typename T = 
void>
   320 template <
typename T>
   324 template <
bool B, 
class T, 
class F>
   330 template <
class T, 
class F>
   337 using std::enable_if;
   338 using std::conditional;
   346 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))   349 template <
typename T>
   355 template <
typename T>
   361 template <
typename T>
   367 template <
typename T>
   373 template <
typename T>
   380 using std::remove_const;
   381 using std::remove_volatile;
   382 using std::remove_cv;
   390 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))   393 template <
typename A, 
typename B>
   397 template <
typename A>
   401 template <
typename BaseT, 
typename DerivedT>
   403   typedef char (&yes)[1];
   404   typedef char (&no)[2];
   406   template <
typename B, 
typename D>
   412   template <
typename T>
   421 template <
typename BaseT, 
typename DerivedT>
   424                         (is_base_of_helper<typename remove_cv<BaseT>::type,
   425                                            typename remove_cv<DerivedT>::type>::value) ||
   426                             (is_same<typename remove_cv<BaseT>::type,
   427                                      typename remove_cv<DerivedT>::type>::value)> {};
   432 using std::is_base_of;
   440 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))   443 template <
typename T>
   445 template <
typename T>
   449 template <
typename T>
   453 template <
typename T>
   457 template <
typename T>
   461 template <
typename T>
   465 template <
typename T>
   489 template <
typename T>
   491 template <
typename T>
   493 template <
typename T>
   497 template <
typename T>
   500                         (is_same<float, typename remove_cv<T>::type>::value ||
   501                          is_same<double, typename remove_cv<T>::type>::value)> {};
   504 template <
typename T>
   506     : 
integral_constant<bool, (is_integral<T>::value || is_floating_point<T>::value)> {};
   509 template <
typename T>
   512                         (is_arithmetic<T>::value || is_void<T>::value ||
   513                          is_same<nullptr_t, typename remove_cv<T>::type>::value)> {};
   517 using std::is_volatile;
   518 using std::is_pointer;
   520 using std::is_integral;
   521 using std::is_floating_point;
   522 using std::is_arithmetic;
   523 using std::is_fundamental;
   527 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800)) || \   528     (defined(__GNUG__) && (__GNUC__ < 5))   540 template <
typename T>
   542     : 
integral_constant<bool, (is_fundamental<T>::value || is_pointer<T>::value)> {};
   546 using std::is_trivially_copyable;
   554 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))   557 template <
typename value_t>
   564   enum { value = 
sizeof(
pad) - 
sizeof(value_t) };
   569 template <
typename value_t>
   621 template <
typename value_t>
   623 template <
typename value_t>
   625 template <
typename value_t>
   628 #if defined(__CUDACC_RTC__) || (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800))   630 template <
size_t Align>
   686 template <
size_t Len, 
size_t Align>
   693 using std::aligned_storage;
   697 #if !defined(__CUDACC_RTC__)   698 template <
typename T>
   705 template <
typename T>
   711 template <
class T, 
class Deleter = default_delete<T> >
   723   deleter_type _deleter;
   746     pointer old_ptr = _ptr;
   748     if (old_ptr != 
nullptr) {
   749       get_deleter()(old_ptr);
   763   operator bool() const 
noexcept { 
return _ptr != 
nullptr; }
   776 template <
typename T, 
typename Deleter>
 
Definition: aligned_buffer.h:35
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:89
Basic include for CUTLASS.