From 9c39819a4a186f75a0e14996de6b5f10ffa80109 Mon Sep 17 00:00:00 2001 From: oliverYoung2001 Date: Fri, 10 May 2024 17:28:17 +0800 Subject: [PATCH] feat: add note about printf in 2.apsp.md --- docs/exp/2.apsp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/exp/2.apsp.md b/docs/exp/2.apsp.md index 3b3ab23..e7d94be 100644 --- a/docs/exp/2.apsp.md +++ b/docs/exp/2.apsp.md @@ -100,7 +100,7 @@ for (int k = p * b; k < (p + 1) * b; k++) 利用这种分块的方式,你可以将部分数据放入大小有限的共享内存或寄存器中,以提升程序执行效率。 ## 编程提示和优化技巧 - +- 调试时你可以直接在设备函数上使用printf,此printf是CUDA特殊支持的函数,但又一些使用上的限制,具体可见[CUDA编程指南](https://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Programming_Guide.pdf)的Appendix B.16; - 使用分块算法时,矩阵底部和右侧的块可能是不完整的,在程序中可能需要边界判断; - 使用指针时,请注意数据在 GPU 上还是主存上:本实验的输入输出均在 GPU 上,调试时你可能需要将其手动拷贝到主存上; - 记得在适当位置添加 `__syncthreads()`(潜在优化点:最短路算法的某一步中,就算访问旧的 shared memory 值,也可证明答案是正确的,此时可以不做同步;如实现此项优化,鼓励在报告中提供证明);