-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
6,836 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/******************************************************************************* | ||
* Copyright 2002-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) interface for Cluster DFT routines | ||
!******************************************************************************/ | ||
|
||
/* Avoid multiple definition */ | ||
#ifndef _MKL_CDFT_H_ | ||
#define _MKL_CDFT_H_ | ||
|
||
/* Include header-files */ | ||
#include "mpi.h" | ||
#include "mkl_cdft_types.h" | ||
|
||
/* Keep C++ compilers from getting confused */ | ||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/* Prototypes of routines */ | ||
extern MKL_LONG DftiCreateDescriptorDM(MPI_Comm,DFTI_DESCRIPTOR_DM_HANDLE*,enum DFTI_CONFIG_VALUE,enum DFTI_CONFIG_VALUE,MKL_LONG,...); | ||
extern MKL_LONG DftiGetValueDM(DFTI_DESCRIPTOR_DM_HANDLE,int,...); | ||
extern MKL_LONG DftiSetValueDM(DFTI_DESCRIPTOR_DM_HANDLE,int,...); | ||
extern MKL_LONG DftiCommitDescriptorDM(DFTI_DESCRIPTOR_DM_HANDLE); | ||
extern MKL_LONG DftiComputeForwardDM(DFTI_DESCRIPTOR_DM_HANDLE,void*,...); | ||
extern MKL_LONG DftiComputeBackwardDM(DFTI_DESCRIPTOR_DM_HANDLE,void*,...); | ||
extern MKL_LONG DftiFreeDescriptorDM(DFTI_DESCRIPTOR_DM_HANDLE*); | ||
|
||
/* Keep C++ compilers from getting confused (extern "C" {) */ | ||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
/* Avoid multiple definition (#ifndef _MKL_CDFT_H_) */ | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/******************************************************************************* | ||
* Copyright 2002-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) interface for Cluster DFT routines | ||
!******************************************************************************/ | ||
|
||
/* Avoid multiple definition */ | ||
#ifndef _MKL_CDFT_TYPES_H_ | ||
#define _MKL_CDFT_TYPES_H_ | ||
|
||
/* Include header-files */ | ||
#include "mkl_dfti.h" | ||
|
||
/* Keep C++ compilers from getting confused */ | ||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/* Codes of errors */ | ||
#define CDFT_MPI_ERROR 1000 | ||
#define CDFT_SPREAD_ERROR 1001 | ||
|
||
/* Codes of parameters for DftiGetValueDM / DftiSetValueDM */ | ||
enum CDFT_CONFIG_PARAM { | ||
CDFT_LOCAL_SIZE =1000, | ||
CDFT_LOCAL_X_START =1001, | ||
CDFT_LOCAL_NX =1002, | ||
CDFT_MPI_COMM =1003, | ||
CDFT_WORKSPACE =1004, | ||
CDFT_LOCAL_OUT_X_START =1005, | ||
CDFT_LOCAL_OUT_NX =1006 | ||
}; | ||
|
||
/* Definition of handle to descriptor */ | ||
typedef struct _DFTI_DESCRIPTOR_DM* DFTI_DESCRIPTOR_DM_HANDLE; | ||
|
||
/* Keep C++ compilers from getting confused (extern "C" {) */ | ||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
/* Avoid multiple definition (#ifndef _MKL_CDFT_TYPES_H_) */ | ||
#endif | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/******************************************************************************* | ||
* Copyright 1999-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) C/C++ interface for | ||
! Cluster Sparse Solver | ||
!******************************************************************************/ | ||
|
||
#if !defined( __MKL_CLUSTER_SPARSE_SOLVER_H ) | ||
|
||
#include "mkl_types.h" | ||
|
||
#define __MKL_CLUSTER_SPARSE_SOLVER_H | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif /* __cplusplus */ | ||
|
||
void cluster_sparse_solver( | ||
void *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const MKL_INT *, | ||
const void *, const MKL_INT *, const MKL_INT *, MKL_INT *, const MKL_INT *, MKL_INT *, | ||
const MKL_INT *, void *, void *, const int *, MKL_INT *); | ||
|
||
void CLUSTER_SPARSE_SOLVER( | ||
void *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const MKL_INT *, | ||
const void *, const MKL_INT *, const MKL_INT *, MKL_INT *, const MKL_INT *, MKL_INT *, | ||
const MKL_INT *, void *, void *, const int *, MKL_INT *); | ||
|
||
void cluster_sparse_solver_64( | ||
void *, const long long int *, const long long int *, const long long int *, const long long int *, const long long int *, | ||
const void *, const long long int *, const long long int *, long long int *, const long long int *, long long int *, | ||
const long long int *, void *, void *, const int *, long long int *); | ||
|
||
void CLUSTER_SPARSE_SOLVER_64( | ||
void *, const long long int *, const long long int *, const long long int *, const long long int *, const long long int *, | ||
const void *, const long long int *, const long long int *, long long int *, const long long int *, long long int *, | ||
const long long int *, void *, void *, const int *, long long int *); | ||
|
||
typedef enum mkl_dss_export_data {DSS_EXPORT_DATA_MIN = 0, | ||
SPARSE_PTLUQT_L = 0, | ||
SPARSE_PTLUQT_U, | ||
SPARSE_PTLUQT_P, | ||
SPARSE_PTLUQT_Q, | ||
SPARSE_DPTLUQT_L, | ||
SPARSE_DPTLUQT_U, | ||
SPARSE_DPTLUQT_P, | ||
SPARSE_DPTLUQT_Q, | ||
SPARSE_DPTLUQT_D, | ||
DSS_EXPORT_DATA_MAX = SPARSE_DPTLUQT_D} _MKL_DSS_EXPORT_DATA; | ||
|
||
typedef enum mkl_dss_export_operation {DSS_EXPORT_OPERATION_MIN = 0, | ||
SPARSE_PTLUQT = 0, | ||
SPARSE_DPTLUQT, | ||
DSS_EXPORT_OPERATION_MAX = SPARSE_DPTLUQT} _MKL_DSS_EXPORT_OPERATION; | ||
|
||
void cluster_sparse_solver_get_csr_size(void *, const int, MKL_INT *, MKL_INT *, const int *, MKL_INT *); | ||
|
||
void cluster_sparse_solver_set_csr_ptrs(void *, const int, MKL_INT *, MKL_INT *, void *, const int *, MKL_INT *); | ||
|
||
void cluster_sparse_solver_set_ptr(void *, const int, void *, const int *, MKL_INT *); | ||
|
||
void cluster_sparse_solver_export(void *, const int, const int *, MKL_INT *); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif /* __cplusplus */ | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,207 @@ | ||
/******************************************************************************* | ||
* Copyright 2017-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) interfaces for Compact format | ||
!******************************************************************************/ | ||
#ifndef _MKL_COMPACT_H | ||
#define _MKL_COMPACT_H | ||
|
||
#include "mkl_types.h" | ||
|
||
#ifndef mkl_compact_complex_float | ||
#define mkl_compact_complex_float MKL_Complex8 | ||
#endif | ||
|
||
#ifndef mkl_compact_complex_double | ||
#define mkl_compact_complex_double MKL_Complex16 | ||
#endif | ||
|
||
#ifdef __cplusplus | ||
extern "C" { /* Assume C declarations for C++ */ | ||
#endif /* __cplusplus */ | ||
|
||
MKL_COMPACT_PACK mkl_get_format_compact( void ); | ||
|
||
MKL_INT mkl_sget_size_compact( MKL_INT ld, MKL_INT sd, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_sgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
const float * const *a, MKL_INT lda, float *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_sgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
float * const *a, MKL_INT lda, const float *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_sgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa, | ||
MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n, | ||
MKL_INT k, float alpha, const float *ap, | ||
MKL_INT ldap, const float *bp, MKL_INT ldbp, | ||
float beta, float *cp, MKL_INT ldcp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_strsm_compact( MKL_LAYOUT layout, MKL_SIDE side, | ||
MKL_UPLO uplo, MKL_TRANSPOSE transa, | ||
MKL_DIAG diag, MKL_INT m, MKL_INT n, | ||
float alpha, const float *ap, MKL_INT ldap, | ||
float *bp, MKL_INT ldbp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
MKL_INT mkl_dget_size_compact( MKL_INT ld, MKL_INT sd, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_dgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
const double * const *a, MKL_INT lda, double *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_dgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
double * const *a, MKL_INT lda, const double *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_dgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa, | ||
MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n, | ||
MKL_INT k, double alpha, const double *a, | ||
MKL_INT ldap, const double *b, MKL_INT ldbp, | ||
double beta, double *c, MKL_INT ldcp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_dtrsm_compact( MKL_LAYOUT layout, MKL_SIDE side, | ||
MKL_UPLO uplo, MKL_TRANSPOSE transa, | ||
MKL_DIAG diag, MKL_INT m, MKL_INT n, | ||
double alpha, const double *a, MKL_INT ldap, | ||
double *b, MKL_INT ldbp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
MKL_INT mkl_cget_size_compact( MKL_INT ld, MKL_INT sd, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_cgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
const mkl_compact_complex_float * const *a, MKL_INT lda, float *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_cgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
mkl_compact_complex_float * const *a, MKL_INT lda, const float *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_cgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa, | ||
MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n, | ||
MKL_INT k, const mkl_compact_complex_float *alpha, const float *a, | ||
MKL_INT ldap, const float *b, MKL_INT ldbp, | ||
const mkl_compact_complex_float *beta, float *c, MKL_INT ldcp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_ctrsm_compact( MKL_LAYOUT layout, MKL_SIDE side, | ||
MKL_UPLO uplo, MKL_TRANSPOSE transa, | ||
MKL_DIAG diag, MKL_INT m, MKL_INT n, | ||
const mkl_compact_complex_float *alpha, const float *a, MKL_INT ldap, | ||
float *b, MKL_INT ldbp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
MKL_INT mkl_zget_size_compact( MKL_INT ld, MKL_INT sd, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_zgepack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
const mkl_compact_complex_double * const *a, MKL_INT lda, double *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_zgeunpack_compact( MKL_LAYOUT layout, MKL_INT rows, MKL_INT columns, | ||
mkl_compact_complex_double * const *a, MKL_INT lda, const double *ap, MKL_INT ldap, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_zgemm_compact( MKL_LAYOUT layout, MKL_TRANSPOSE transa, | ||
MKL_TRANSPOSE transb, MKL_INT m, MKL_INT n, | ||
MKL_INT k, const mkl_compact_complex_double *alpha, const double *a, | ||
MKL_INT ldap, const double *b, MKL_INT ldbp, | ||
const mkl_compact_complex_double *beta, double *c, MKL_INT ldcp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
void mkl_ztrsm_compact( MKL_LAYOUT layout, MKL_SIDE side, | ||
MKL_UPLO uplo, MKL_TRANSPOSE transa, | ||
MKL_DIAG diag, MKL_INT m, MKL_INT n, | ||
const mkl_compact_complex_double *alpha, const double *a, MKL_INT ldap, | ||
double *b, MKL_INT ldbp, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
/* LAPACK compact routines */ | ||
|
||
void mkl_cgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, float* ap, | ||
MKL_INT ldap, float* work, MKL_INT lwork, | ||
MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_dgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, double* ap, MKL_INT ldap, | ||
double* work, MKL_INT lwork, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_sgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, float* ap, MKL_INT ldap, | ||
float* work, MKL_INT lwork, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_zgetrinp_compact( MKL_LAYOUT layout, MKL_INT n, double* ap, | ||
MKL_INT ldap, double* work, MKL_INT lwork, | ||
MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_cgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, | ||
float* ap, MKL_INT ldap, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_dgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap, | ||
MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
void mkl_sgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap, | ||
MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
void mkl_zgetrfnp_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, | ||
double* ap, MKL_INT ldap, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_cpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, | ||
float* ap, MKL_INT ldap, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_dpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, double* ap, | ||
MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
void mkl_spotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, float* ap, | ||
MKL_INT ldap, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
void mkl_zpotrf_compact( MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, | ||
double* ap, MKL_INT ldap, MKL_INT* info, | ||
MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_cgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap, | ||
MKL_INT ldap, float* taup, float* work, MKL_INT lwork, | ||
MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_dgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap, | ||
MKL_INT ldap, double* taup, double* work, | ||
MKL_INT lwork, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
void mkl_sgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, float* ap, | ||
MKL_INT ldap, float* taup, float* work, MKL_INT lwork, | ||
MKL_INT* info, MKL_COMPACT_PACK format, MKL_INT nm ); | ||
|
||
void mkl_zgeqrf_compact( MKL_LAYOUT layout, MKL_INT m, MKL_INT n, double* ap, | ||
MKL_INT ldap, double* taup, double* work, | ||
MKL_INT lwork, MKL_INT* info, MKL_COMPACT_PACK format, | ||
MKL_INT nm ); | ||
|
||
|
||
MKL_INT64 mkl_sget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd, | ||
MKL_COMPACT_PACK format, MKL_INT64 nm ); | ||
|
||
MKL_INT64 mkl_dget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd, | ||
MKL_COMPACT_PACK format, MKL_INT64 nm ); | ||
|
||
MKL_INT64 mkl_cget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd, | ||
MKL_COMPACT_PACK format, MKL_INT64 nm ); | ||
|
||
MKL_INT64 mkl_zget_size_compact_64( MKL_INT64 ld, MKL_INT64 sd, | ||
MKL_COMPACT_PACK format, MKL_INT64 nm ); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif /* __cplusplus */ | ||
|
||
#endif /* _MKL_COMPACT_H */ |
Oops, something went wrong.