std::forward
is another signature feature of c++11 beside std::move
. Technically, it does perfect forwarding. But of what and when? In this post, we will explore some use cases and context behind.
What does std::move do at parameter binding?
std::move
is the signature feature of c++11 and often used in resource management so called RAII(resource acquisition is initialization). In this post, we just focus on 1 scenario that appears frequently in factory mode and demonstrate how compiler treats it at parameter binding.
How to achieve Inter-cta sync on Nvidia GPU
Background
In many deep learning and scientific applications, inter-CTA-sync is a necessary pattern. But
even with CUDA9’s new feature coperative launch, inter-CTA-sync is never trivial. This blog will dive into this topic with a reduction as our model.
Say we need to perform a reduction over a entire grid of threads and a natural idea is to reduce intra-block first and inter-block as a second step, so called two-step protocal. It is the best version in terms of performance and comprehensibility. The second step is what need to pay attention to because other blocks have to consume data my block produced in a safe way(Producer-Consumer model). Sure, two kernel launch can be a kill but not in our scope.
HEXO Advanced
HEXO接近是最近有一些朋友提出的问题,然后我做了总结,如果你也在使用HEXO,不妨看看,应该会有些帮助。
1、博客部署样式出问题了怎么办?
2、电脑重装或者误删了本地博客怎么办?
3、想使用两台电脑写博客怎么办?
4、为何使用百度搜不到我的博客?
Deterministic-random-shuffle
Motivation
Determinism is a important issue in deep learning(DL) though a lot of randomness is burried here and there, e.g. initialization of weights
It’s actually easier to understand in TF1.x language, purely graph mode. This link is highly recommended. TF2.x introduces eager mode but still keeps graph mode option by all sorts of means, e.g. tf.function
. It’s explained here but to be honest way more counterintuitive.
This post aims to list couple of senarios may trip you down when playing around with such concepts.
Useful docker commands
1 | ~/.bash_aliases |
Domain Decomposition Method for Elliptic PDEs
What is this?
This is a brief introduction to domain decomposition method(DDM) for MATH576 at UNM. The report can be found here.
ParaReal-heat
What is this?
This project implements a Parallel-in-Time(PIT) algorithm, ParaReal for heat equation with hybrid OpenMP and MPI.
Machine Learning
What is this?
This is a series of course projects for Machine Learning at UNM. For the topics, please refer to the following table.
Topic | Keywords |
---|---|
Kernel Tricks for Regrssion Problems | Kernel Methods, Ridge Regression, Support Vector Machine, Classification |
Support Vector Machine for Classification and Regression | SVM, Structural risk, Classification, Regression |
Hidden Markov Models | Hidden Markov Model, Markov Model, Latent Variable, Markov Process |
Latent Linear Models: PCA and ICA | Latent Linear Model, PCA, PPCA, ICA, FastICA, EM, Factor Analysis |
Clustering with Gaussian Mixture Models and K-Means | EM, Gaussian Mixture Models, K-means |
Convex-beamforming
What is this?
In this report, a robust beaming forming problem is analyzed and formulated into second order cone programming. The numerical method will be studied and compared with traditional ones.