Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
mma.cu File Reference
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
#include <cusolverDn.h>
#include <neko/device/device_config.h>
#include <neko/device/cuda/check.h>
#include <neko/math/bcknd/device/device_mpi_reduce.h>
#include <neko/math/bcknd/device/device_mpi_op.h>
#include "mma_kernel.h"
Include dependency graph for mma.cu:

Go to the source code of this file.

Functions

void mma_update_hessian_z_cuda (void *Hess, void *a, int *m)
 
void mma_prepare_aa_matrix_cuda (void *AA, void *s, void *lambda, void *d, void *mu, void *y, void *a, real *zeta, real *z, int *m)
 
void mma_prepare_hessian_cuda (void *Hess, void *y, void *mu, void *lambda, int *m)
 
void cuda_custom_solver (void *A, void *b, int n, int *info)
 
void cuSOLVER_wrapper (void *A, void *b, int n, int *jj)
 
void custom_solve_linear_system (void *A, void *b, int n, int *info)
 
void delta_1dbeam_cuda (void *Delta, real *L_total, real *Le, int *offset, int *n)
 
void cuda_Hess (void *Hess, void *hijx, void *Ljjxinv, int *n, int *m)
 
void mma_Ljjxinv_cuda (void *Ljjxinv, void *pjlambda, void *qjlambda, void *x, void *low, void *upp, void *alpha, void *beta, int *n)
 
void mma_dipsolvesub1_cuda (void *x, void *pjlambda, void *qjlambda, void *low, void *upp, void *alpha, void *beta, int *n)
 
void mattrans_v_mul_cuda (void *output, void *pij, void *lambda, int *m, int *n)
 
void mma_gensub4_cuda (const void *x, const void *low, const void *upp, const void *pij, const void *qij, const int *n, const int *m, void *bi)
 
void mma_gensub3_cuda (void *x, void *df0dx, void *dfdx, void *low, void *upp, void *xmin, void *xmax, void *alpha, void *beta, void *p0j, void *q0j, void *pij, void *qij, int *n, int *m)
 
void mma_gensub3_dip_cuda (void *x, void *df0dx, void *dfdx, void *low, void *upp, void *xmin, void *xmax, void *alpha, void *beta, void *p0j, void *q0j, void *pij, void *qij, int *n, int *m)
 
void mma_gensub2_cuda (void *low, void *upp, void *x, void *xold1, void *xold2, void *xdiff, real *asydecr, real *asyincr, int *n)
 
void mma_gensub1_cuda (void *low, void *upp, void *x, void *xmin, void *xmax, real *asyinit, int *n)
 
void cuda_mma_max (void *xsi, void *x, void *alpha, int *n)
 
void cuda_relambda (void *relambda, void *x, void *xupp, void *xlow, void *pij, void *qij, int *n, int *m)
 
void cuda_sub2cons2 (void *a, void *b, void *c, void *d, real *e, int *n)
 
real cuda_maxval (void *a, int *n)
 
void cuda_delx (void *delx, void *x, void *xlow, void *xupp, void *pij, void *qij, void *p0j, void *q0j, void *alpha, void *beta, void *lambda, real *epsi, int *n, int *m)
 
void cuda_GG (void *GG, void *x, void *xlow, void *xupp, void *pij, void *qij, int *n, int *m)
 
void cuda_diagx (void *diagx, void *x, void *xsi, void *xlow, void *xupp, void *p0j, void *q0j, void *pij, void *qij, void *alpha, void *beta, void *eta, void *lambda, int *n, int *m)
 
void cuda_bb (void *bb, void *GG, void *delx, void *diagx, int *n, int *m)
 
void cuda_AA (void *AA, void *GG, void *diagx, int *n, int *m)
 
void cuda_dx (void *dx, void *delx, void *diagx, void *GG, void *dlambda, int *n, int *m)
 
void cuda_dxsi (void *dxsi, void *xsi, void *dx, void *x, void *alpha, real *epsi, int *n)
 
void cuda_deta (void *deta, void *eta, void *dx, void *x, void *beta, real *epsi, int *n)
 
void cuda_rex (void *rex, void *x, void *xlow, void *xupp, void *pij, void *p0j, void *qij, void *q0j, void *lambda, void *xsi, void *eta, int *n, int *m)
 
void cuda_rey (void *rey, void *c, void *d, void *y, void *lambda, void *mu, int *n)
 
void cuda_sub2cons (void *a, void *b, void *c, real *d, int *n)
 
real cuda_norm (void *a, int *n)
 
void cuda_dely (void *dely, void *c, void *d, void *y, void *lambda, real *epsi, int *n)
 
real cuda_maxval2 (void *a, void *b, real *cons, int *n)
 
real cuda_maxval3 (void *a, void *b, void *c, real *cons, int *n)
 
void cuda_kkt_rex (void *rex, void *df0dx, void *dfdx, void *xsi, void *eta, void *lambda, int *n, int *m)
 
void mma_dip_kkt_cuda (void *res, void *x, void *df0dx, void *dfdx, void *xmin, void *xmax, void *lambda, int *n, int *m)
 
void cuda_maxcons (void *a, real *b, real *c, void *d, int *n)
 
real cuda_lcsc2 (void *a, void *b, int *n)
 
void cuda_mpisum (void *a, int *n)
 
void cuda_add2inv2 (void *a, void *b, real *c, int *n)
 
void cuda_max2 (void *a, real *b, void *c, real *d, int *n)
 
void cuda_updatebb (void *bb, void *dellambda, void *dely, void *d, void *mu, void *y, real *delz, int *m)
 
void cuda_updateAA (void *AA, void *globaltmp_mm, void *s, void *lambda, void *d, void *mu, void *y, void *a, real *zeta, real *z, int *m)
 
void cuda_dy (void *dy, void *dely, void *dlambda, void *d, void *mu, void *y, int *n)
 

Variables

int mma_red_s = 0
 
real * mma_bufred = NULL
 
real * mma_bufred_d = NULL
 

Detailed Description

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file mma.cu.

Function Documentation

◆ cuda_AA()

void cuda_AA ( void *  AA,
void *  GG,
void *  diagx,
int *  n,
int *  m 
)

Definition at line 572 of file mma.cu.

◆ cuda_add2inv2()

void cuda_add2inv2 ( void *  a,
void *  b,
real *  c,
int *  n 
)

Definition at line 810 of file mma.cu.

◆ cuda_bb()

void cuda_bb ( void *  bb,
void *  GG,
void *  delx,
void *  diagx,
int *  n,
int *  m 
)

Definition at line 545 of file mma.cu.

◆ cuda_custom_solver()

void cuda_custom_solver ( void *  A,
void *  b,
int  n,
int *  info 
)

Definition at line 142 of file mma.cu.

◆ cuda_delx()

void cuda_delx ( void *  delx,
void *  x,
void *  xlow,
void *  xupp,
void *  pij,
void *  qij,
void *  p0j,
void *  q0j,
void *  alpha,
void *  beta,
void *  lambda,
real *  epsi,
int *  n,
int *  m 
)

Definition at line 509 of file mma.cu.

◆ cuda_dely()

void cuda_dely ( void *  dely,
void *  c,
void *  d,
void *  y,
void *  lambda,
real *  epsi,
int *  n 
)

Definition at line 688 of file mma.cu.

◆ cuda_deta()

void cuda_deta ( void *  deta,
void *  eta,
void *  dx,
void *  x,
void *  beta,
real *  epsi,
int *  n 
)

Definition at line 622 of file mma.cu.

◆ cuda_diagx()

void cuda_diagx ( void *  diagx,
void *  x,
void *  xsi,
void *  xlow,
void *  xupp,
void *  p0j,
void *  q0j,
void *  pij,
void *  qij,
void *  alpha,
void *  beta,
void *  eta,
void *  lambda,
int *  n,
int *  m 
)

Definition at line 533 of file mma.cu.

◆ cuda_dx()

void cuda_dx ( void *  dx,
void *  delx,
void *  diagx,
void *  GG,
void *  dlambda,
int *  n,
int *  m 
)

Definition at line 602 of file mma.cu.

◆ cuda_dxsi()

void cuda_dxsi ( void *  dxsi,
void *  xsi,
void *  dx,
void *  x,
void *  alpha,
real *  epsi,
int *  n 
)

Definition at line 612 of file mma.cu.

◆ cuda_dy()

void cuda_dy ( void *  dy,
void *  dely,
void *  dlambda,
void *  d,
void *  mu,
void *  y,
int *  n 
)

Definition at line 846 of file mma.cu.

◆ cuda_GG()

void cuda_GG ( void *  GG,
void *  x,
void *  xlow,
void *  xupp,
void *  pij,
void *  qij,
int *  n,
int *  m 
)

Definition at line 523 of file mma.cu.

◆ cuda_Hess()

void cuda_Hess ( void *  Hess,
void *  hijx,
void *  Ljjxinv,
int *  n,
int *  m 
)

Definition at line 255 of file mma.cu.

◆ cuda_kkt_rex()

void cuda_kkt_rex ( void *  rex,
void *  df0dx,
void *  dfdx,
void *  xsi,
void *  eta,
void *  lambda,
int *  n,
int *  m 
)

Definition at line 746 of file mma.cu.

◆ cuda_lcsc2()

real cuda_lcsc2 ( void *  a,
void *  b,
int *  n 
)

Definition at line 777 of file mma.cu.

◆ cuda_max2()

void cuda_max2 ( void *  a,
real *  b,
void *  c,
real *  d,
int *  n 
)

Definition at line 818 of file mma.cu.

◆ cuda_maxcons()

void cuda_maxcons ( void *  a,
real *  b,
real *  c,
void *  d,
int *  n 
)

Definition at line 769 of file mma.cu.

◆ cuda_maxval()

real cuda_maxval ( void *  a,
int *  n 
)

Definition at line 477 of file mma.cu.

◆ cuda_maxval2()

real cuda_maxval2 ( void *  a,
void *  b,
real *  cons,
int *  n 
)

Definition at line 697 of file mma.cu.

◆ cuda_maxval3()

real cuda_maxval3 ( void *  a,
void *  b,
void *  c,
real *  cons,
int *  n 
)

Definition at line 722 of file mma.cu.

◆ cuda_mma_max()

void cuda_mma_max ( void *  xsi,
void *  x,
void *  alpha,
int *  n 
)

Definition at line 423 of file mma.cu.

◆ cuda_mpisum()

void cuda_mpisum ( void *  a,
int *  n 
)

Definition at line 802 of file mma.cu.

◆ cuda_norm()

real cuda_norm ( void *  a,
int *  n 
)

Definition at line 663 of file mma.cu.

◆ cuda_relambda()

void cuda_relambda ( void *  relambda,
void *  x,
void *  xupp,
void *  xlow,
void *  pij,
void *  qij,
int *  n,
int *  m 
)

Definition at line 432 of file mma.cu.

◆ cuda_rex()

void cuda_rex ( void *  rex,
void *  x,
void *  xlow,
void *  xupp,
void *  pij,
void *  p0j,
void *  qij,
void *  q0j,
void *  lambda,
void *  xsi,
void *  eta,
int *  n,
int *  m 
)

Definition at line 632 of file mma.cu.

◆ cuda_rey()

void cuda_rey ( void *  rey,
void *  c,
void *  d,
void *  y,
void *  lambda,
void *  mu,
int *  n 
)

Definition at line 644 of file mma.cu.

◆ cuda_sub2cons()

void cuda_sub2cons ( void *  a,
void *  b,
void *  c,
real *  d,
int *  n 
)

Definition at line 655 of file mma.cu.

◆ cuda_sub2cons2()

void cuda_sub2cons2 ( void *  a,
void *  b,
void *  c,
void *  d,
real *  e,
int *  n 
)

Definition at line 466 of file mma.cu.

◆ cuda_updateAA()

void cuda_updateAA ( void *  AA,
void *  globaltmp_mm,
void *  s,
void *  lambda,
void *  d,
void *  mu,
void *  y,
void *  a,
real *  zeta,
real *  z,
int *  m 
)

Definition at line 836 of file mma.cu.

◆ cuda_updatebb()

void cuda_updatebb ( void *  bb,
void *  dellambda,
void *  dely,
void *  d,
void *  mu,
void *  y,
real *  delz,
int *  m 
)

Definition at line 826 of file mma.cu.

◆ cuSOLVER_wrapper()

void cuSOLVER_wrapper ( void *  A,
void *  b,
int  n,
int *  jj 
)

Definition at line 163 of file mma.cu.

◆ custom_solve_linear_system()

void custom_solve_linear_system ( void *  A,
void *  b,
int  n,
int *  info 
)

Definition at line 225 of file mma.cu.

◆ delta_1dbeam_cuda()

void delta_1dbeam_cuda ( void *  Delta,
real *  L_total,
real *  Le,
int *  offset,
int *  n 
)

Definition at line 246 of file mma.cu.

◆ mattrans_v_mul_cuda()

void mattrans_v_mul_cuda ( void *  output,
void *  pij,
void *  lambda,
int *  m,
int *  n 
)

Definition at line 305 of file mma.cu.

◆ mma_dip_kkt_cuda()

void mma_dip_kkt_cuda ( void *  res,
void *  x,
void *  df0dx,
void *  dfdx,
void *  xmin,
void *  xmax,
void *  lambda,
int *  n,
int *  m 
)

Definition at line 756 of file mma.cu.

◆ mma_dipsolvesub1_cuda()

void mma_dipsolvesub1_cuda ( void *  x,
void *  pjlambda,
void *  qjlambda,
void *  low,
void *  upp,
void *  alpha,
void *  beta,
int *  n 
)

Definition at line 295 of file mma.cu.

◆ mma_gensub1_cuda()

void mma_gensub1_cuda ( void *  low,
void *  upp,
void *  x,
void *  xmin,
void *  xmax,
real *  asyinit,
int *  n 
)

Definition at line 413 of file mma.cu.

◆ mma_gensub2_cuda()

void mma_gensub2_cuda ( void *  low,
void *  upp,
void *  x,
void *  xold1,
void *  xold2,
void *  xdiff,
real *  asydecr,
real *  asyincr,
int *  n 
)

Definition at line 400 of file mma.cu.

◆ mma_gensub3_cuda()

void mma_gensub3_cuda ( void *  x,
void *  df0dx,
void *  dfdx,
void *  low,
void *  upp,
void *  xmin,
void *  xmax,
void *  alpha,
void *  beta,
void *  p0j,
void *  q0j,
void *  pij,
void *  qij,
int *  n,
int *  m 
)

Definition at line 368 of file mma.cu.

◆ mma_gensub3_dip_cuda()

void mma_gensub3_dip_cuda ( void *  x,
void *  df0dx,
void *  dfdx,
void *  low,
void *  upp,
void *  xmin,
void *  xmax,
void *  alpha,
void *  beta,
void *  p0j,
void *  q0j,
void *  pij,
void *  qij,
int *  n,
int *  m 
)

Definition at line 384 of file mma.cu.

◆ mma_gensub4_cuda()

void mma_gensub4_cuda ( const void *  x,
const void *  low,
const void *  upp,
const void *  pij,
const void *  qij,
const int *  n,
const int *  m,
void *  bi 
)

Definition at line 314 of file mma.cu.

◆ mma_Ljjxinv_cuda()

void mma_Ljjxinv_cuda ( void *  Ljjxinv,
void *  pjlambda,
void *  qjlambda,
void *  x,
void *  low,
void *  upp,
void *  alpha,
void *  beta,
int *  n 
)

Definition at line 285 of file mma.cu.

◆ mma_prepare_aa_matrix_cuda()

void mma_prepare_aa_matrix_cuda ( void *  AA,
void *  s,
void *  lambda,
void *  d,
void *  mu,
void *  y,
void *  a,
real *  zeta,
real *  z,
int *  m 
)

Definition at line 75 of file mma.cu.

◆ mma_prepare_hessian_cuda()

void mma_prepare_hessian_cuda ( void *  Hess,
void *  y,
void *  mu,
void *  lambda,
int *  m 
)

Definition at line 90 of file mma.cu.

◆ mma_update_hessian_z_cuda()

void mma_update_hessian_z_cuda ( void *  Hess,
void *  a,
int *  m 
)

Definition at line 61 of file mma.cu.

Variable Documentation

◆ mma_bufred

real* mma_bufred = NULL

Definition at line 58 of file mma.cu.

◆ mma_bufred_d

real* mma_bufred_d = NULL

Definition at line 59 of file mma.cu.

◆ mma_red_s

int mma_red_s = 0

Definition at line 57 of file mma.cu.