Changcheng Yuan
I am currently a Computer Science PhD student at Texas A&M University. My research interests sit at the intersection of theory and systems, and I am interested in building high-performance systems grounded in strong theoretical foundations.
I currently work on analog error-correcting codes (Analog ECC) for in-memory analog computing circuits under the supervision of Dr. Anxiao (Andrew) Jiang. My work focuses on theory for Analog ECC design and algorithms for efficient code evaluation and decoding.
I am also interested in parallel computing, especially GPU based algorithms. I completed my M.S. in Computer Science at UC Davis, where I was advised by Dr. John Owens and worked on GPU-based sparse direct solvers and graph partitioning algorithms.
Research Interests
News
-
Papers Accepted!
ISIT今年在广州,好想吃叉烧和烧鹅
Publications
-
On the Height Profile of Analog Error-Correcting Codes
IEEE International Symposium on Information Theory (ISIT), 2026 (Accepted. arXiv preprint arXiv:2602.20366.)
-
Fast Sparse Matrix Permutation for Mesh-Based Direct Solvers
ACM SIGGRAPH, 2026 (Accepted to the conference track. arXiv preprint arXiv:2602.00898.)
Projects
-
GPU SpMM vs. GEMM Break-even
Aug. 2025
A performance study of sparse-dense matrix multiplication against dense GEMM baselines on GPU.
-
2D Peridynamics GPU Simulator
GitHubJun. 2025 - Present
A GPU-accelerated 2D peridynamics simulator using BLAS-like primitives, tensor operations, and domain decomposition.
-
Multi-label Graph Mining System
GitHubSept. 2024 - Mar. 2025
A graph mining system for comparing heuristics, enumerating patterns, and deduplicating embeddings.
-
SPGEMM Dataflow Analysis on GPU
GitHubOct. 2022
An implementation and analysis of inner-product, outer-product, and row-wise SPGEMM dataflows on GPU.
Internship
-
Pony.AI
Software Engineer Intern, Jun. 2019 - Sept. 2019 , Guangzhou, China
Built a Linux C++/OpenGL dashboard for map and lane rendering, sensor overlays, and interactive controls, and implemented an i18n module with smart language-file loading and unloading to reduce runtime resource usage.