Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Partial evaluation: Adapt more expressions #11

Open
JPenuchot opened this issue Jul 23, 2019 · 1 comment
Open

Partial evaluation: Adapt more expressions #11

JPenuchot opened this issue Jul 23, 2019 · 1 comment
Assignees
Labels
good first issue Good for newcomers

Comments

@JPenuchot
Copy link
Member

JPenuchot commented Jul 23, 2019

Most of the work is done now, cudaAssign() needs overloads for every expression to support partial evaluation properly, following the same implementation pattern as in DMatDMatAddExpr.h:

  • External to the original expression templates
  • Implement the same functionalities as their CPU counterparts
  • Follow the same enable condition as their CPU counterparts
  • Call cudaAssign() instead of assign()

cuBLAS will be used as much as possible to implement them.

@JPenuchot JPenuchot added the good first issue Good for newcomers label Jul 23, 2019
@JPenuchot JPenuchot self-assigned this Jul 23, 2019
@JPenuchot JPenuchot changed the title Adapt more expressions Partial evaluation: Adapt more expressions Jul 23, 2019
@JPenuchot JPenuchot pinned this issue Jul 23, 2019
@JPenuchot
Copy link
Member Author

Here's a list of the expressions that are already implemented:

DMatDMatMapExpr
DMatMapExpr
DMatDMatSubExpr
DMatDMatAddExpr
DMatDMatMultExpr
DMatSerialExpr
DMatTransExpr

Here's a list of expressions being worked on:

DMatDVecMultExpr: 
  Requires a bit of work on the cuBLAS part
DVecDVecInnerExpr: 
  Only plain vectors, requires modifications on Blaze to work seamlessly with views
  & CUDA-compatible expressions

And for starters, here's a list of expressions to implement:

DMatDeclLowExpr
DMatScalarDivExpr
TVecMatMultExpr
DVecTransExpr
DVecDVecSubExpr
DVecDVecOuterExpr
DMatDMatKronExpr
DMatDeclSymExpr
DMatDMatEqualExpr
DMatDMatSchurExpr
DVecSoftmaxExpr
TDMatTDMatMultExpr
DMatDeclDiagExpr
DVecDVecMapExpr
DMatNormExpr
DMatMeanExpr
DMatDeclHermExpr
DMatTDMatMapExpr
DMatTDMatMultExpr
DMatTDMatSchurExpr
DVecSerialExpr
DVecDVecAddExpr
DVecDVecCrossExpr
DVecScalarDivExpr
DVecDVecKronExpr
DMatSoftmaxExpr
DVecVarExpr
TDMatDVecMultExpr
DVecEvalExpr
TDVecTDMatMultExpr
DVecNormExpr
DVecReduceExpr
DVecExpandExpr
DVecDVecMultExpr
DVecMapExpr
DVecDVecDivExpr
DMatTDMatAddExpr
DMatTDMatSubExpr
TDMatDMatMultExpr
DMatDetExpr
DMatScalarMultExpr
DMatDeclUppExpr
DVecScalarMultExpr
DMatEvalExpr
DMatInvExpr
DMatReduceExpr
DVecDVecEqualExpr
DMatStdDevExpr
DMatVarExpr
DVecMeanExpr
DVecStdDevExpr
TDVecDMatMultExpr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant