Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
lyndskg authored Jul 21, 2023
1 parent 82c379f commit c083649
Show file tree
Hide file tree
Showing 12 changed files with 6,836 additions and 0 deletions.
394 changes: 394 additions & 0 deletions oneMKL2/mkl_blacs.h

Large diffs are not rendered by default.

1,540 changes: 1,540 additions & 0 deletions oneMKL2/mkl_blas.h

Large diffs are not rendered by default.

1,491 changes: 1,491 additions & 0 deletions oneMKL2/mkl_blas_64.h

Large diffs are not rendered by default.

1,247 changes: 1,247 additions & 0 deletions oneMKL2/mkl_cblas.h

Large diffs are not rendered by default.

1,201 changes: 1,201 additions & 0 deletions oneMKL2/mkl_cblas_64.h

Large diffs are not rendered by default.

48 changes: 48 additions & 0 deletions oneMKL2/mkl_cdft.h
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
57 changes: 57 additions & 0 deletions oneMKL2/mkl_cdft_types.h
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

80 changes: 80 additions & 0 deletions oneMKL2/mkl_cluster_sparse_solver.h
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
207 changes: 207 additions & 0 deletions oneMKL2/mkl_compact.h
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 */
Loading

0 comments on commit c083649

Please sign in to comment.