CUDA.ParallelPrimitives.hpp 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // CodeGear C++Builder
  2. // Copyright (c) 1995, 2024 by Embarcadero Technologies, Inc.
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'CUDA.ParallelPrimitives.pas' rev: 36.00 (Windows)
  5. #ifndef CUDA_ParallelPrimitivesHPP
  6. #define CUDA_ParallelPrimitivesHPP
  7. #pragma delphiheader begin
  8. #pragma option push
  9. #if defined(__BORLANDC__) && !defined(__clang__)
  10. #pragma option -w- // All warnings off
  11. #pragma option -Vx // Zero-length empty class member
  12. #endif
  13. #pragma pack(push,8)
  14. #include <System.hpp>
  15. #include <SysInit.hpp>
  16. //-- user supplied -----------------------------------------------------------
  17. namespace Cuda
  18. {
  19. namespace Parallelprimitives
  20. {
  21. //-- forward type declarations -----------------------------------------------
  22. struct TCUDPPConfiguration;
  23. //-- type declarations -------------------------------------------------------
  24. enum DECLSPEC_DENUM TCUDPPResult : unsigned char { CUDPP_SUCCESS, CUDPP_ERROR_INVALID_HANDLE, CUDPP_ERROR_ILLEGAL_CONFIGURATION, CUDPP_ERROR_UNKNOWN };
  25. enum DECLSPEC_DENUM TCUDPPOption : unsigned char { CUDPP_OPTION_FORWARD, CUDPP_OPTION_BACKWARD, CUDPP_OPTION_EXCLUSIVE, CUDPP_OPTION_INCLUSIVE, CUDPP_OPTION_CTA_LOCAL, CUDPP_OPTION_KEYS_ONLY, CUDPP_OPTION_KEY_VALUE_PAIRS };
  26. enum DECLSPEC_DENUM TCUDPPDatatype : unsigned char { CUDPP_CHAR, CUDPP_UCHAR, CUDPP_INT, CUDPP_UINT, CUDPP_FLOAT };
  27. enum DECLSPEC_DENUM TCUDPPOperator : unsigned char { CUDPP_ADD, CUDPP_MULTIPLY, CUDPP_MIN, CUDPP_MAX };
  28. enum DECLSPEC_DENUM TCUDPPAlgorithm : unsigned char { CUDPP_SCAN, CUDPP_SEGMENTED_SCAN, CUDPP_COMPACT, CUDPP_REDUCE, CUDPP_SORT_RADIX, CUDPP_SPMVMULT, CUDPP_RAND_MD5, CUDPP_ALGORITHM_INVALID };
  29. struct DECLSPEC_DRECORD TCUDPPConfiguration
  30. {
  31. public:
  32. TCUDPPAlgorithm algorithm;
  33. TCUDPPOperator op;
  34. TCUDPPDatatype datatype;
  35. TCUDPPOption options;
  36. };
  37. typedef System::NativeUInt TCUDPPHandle;
  38. //-- var, const, procedure ---------------------------------------------------
  39. #define CUDPPDLL L"cudpp32.dll"
  40. static _DELPHI_CONST unsigned CUDPP_INVALID_HANDLE = unsigned(0xc0dabad1);
  41. extern "C" TCUDPPResult __stdcall cudppPlan(TCUDPPHandle &planHandle, TCUDPPConfiguration config, System::NativeUInt n, System::NativeUInt rows, System::NativeUInt rowPitch);
  42. extern "C" TCUDPPResult __stdcall cudppDestroyPlan(TCUDPPHandle plan);
  43. extern "C" TCUDPPResult __stdcall cudppScan(TCUDPPHandle planHandle, void *d_out, System::NativeUInt &d_in, System::NativeUInt &numElements);
  44. extern "C" TCUDPPResult __stdcall cudppMultiScan(TCUDPPHandle planHandle, void *d_out, void *d_in, System::NativeUInt numElements, System::NativeUInt numRows);
  45. extern "C" TCUDPPResult __stdcall cudppSegmentedScan(TCUDPPHandle planHandle, void *d_out, void *d_idata, const System::PCardinal d_iflags, System::NativeUInt numElements);
  46. extern "C" TCUDPPResult __stdcall cudppCompact(TCUDPPHandle planHandle, void *d_out, System::NativeUInt &d_numValidElements, void *d_in, const System::PCardinal d_isValid, System::NativeUInt numElements);
  47. extern "C" TCUDPPResult __stdcall cudppSort(TCUDPPHandle planHandle, void *d_keys, void *d_values, int keybits, System::NativeUInt numElements);
  48. extern "C" TCUDPPResult __stdcall cudppSparseMatrix(TCUDPPHandle &sparseMatrixHandle, TCUDPPConfiguration config, System::NativeUInt n, System::NativeUInt rows, void *A, const System::PCardinal h_rowIndices, const System::PCardinal h_indices);
  49. extern "C" TCUDPPResult __stdcall cudppDestroySparseMatrix(TCUDPPHandle sparseMatrixHandle);
  50. extern "C" TCUDPPResult __stdcall cudppSparseMatrixVectorMultiply(TCUDPPHandle sparseMatrixHandle, void *d_y, void *d_x);
  51. extern "C" TCUDPPResult __stdcall cudppRand(TCUDPPHandle planHandle, void *d_out, System::NativeUInt numElements);
  52. extern "C" TCUDPPResult __stdcall cudppRandSeed(const TCUDPPHandle planHandle, unsigned seed);
  53. } /* namespace Parallelprimitives */
  54. } /* namespace Cuda */
  55. #if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_CUDA_PARALLELPRIMITIVES)
  56. using namespace Cuda::Parallelprimitives;
  57. #endif
  58. #if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_CUDA)
  59. using namespace Cuda;
  60. #endif
  61. #pragma pack(pop)
  62. #pragma option pop
  63. #pragma delphiheader end.
  64. //-- end unit ----------------------------------------------------------------
  65. #endif // CUDA_ParallelPrimitivesHPP