目录
以计算服务平台昆山中心为例,罗列一些常见的DCU开发常见问题,请各位参考。
一、硬件架构参数问题
1、计算平台CPU、DCU对标NV哪个型号?
A:计算平台CPU#1,对标AMD Naples。DCU对标NV
Tesla V100、AMD Vega MI60。
2、DCU与AMD GPU的什么架构相似?
A:可参考AMD gfx906。
3、DCU(风冷及液冷)与NVIDIA V100在硬件架构与配置上有何差异?
A:DCU没有tensorcore,纹理单元和内存也没有,share memory机制类似,等基本是一样的,容量有些差别。
4、DCU支持tensorcore吗?
A:不支持。
5、计算平台上的cpu存在numa现象吗?与Intel至强CPU在硬件架构与配置上有何差异?
A:有的。每个cpu有4个numa节点,相当于4路cpu,每个cpu带一个加速卡,调优时注意绑定numa。Intel至强cpu 每个cpu有一个numa节点。
6、DCU系统软硬件架构
7、DCU Z100产品参数
A:请联系秘书处获取产品手册,光合基金秘书处邮箱 ghfund@hieco.com.cn
二、DCU编程环境问题
1、DCU是否支持切换精度的宏?
A:支持。
2、是否支持boost库cpu端使用?
A:支持。
3、DCU是否支持thrust库?
A:支持,DCU中是rocThrust。
4、对于二级矩阵中的doublepoint**,CUDA里面是分配页锁定内存,DCU是否也支持这种用法?
A:支持锁页内存(pinned memory)。
5、DCU是否支持CUDACXX库?
A:目前还不支持,libcudacxx还没有做,load store接口是有的,但没有开放出来,可以联系开发工程师进行封装,用户订制开发。建议尽量绕过去CUDACXX。
6、ROCm对CUDA的支持列表有哪些?
A:CUDA4.0的大部分功能支持,如stream、内存管理、同步管理、kernel都差不多支,不支持的有:global调global(dinamic
parallel)、协作组。
7、目前昆山集群有哪些编译好的数学库可用呢?
A:rocBLAS、rocFFT、MIOpen等
8、能否使用gcc 10/11中的OpenMP/OpenACC做DCU的异构开发?
A:DTK-22.10已经添加了OpenMP和OpenACC C和C++语言支持,使用手册请见 https://cancon.hpccube.com:65024/1/main/DTK-22.10/Document
。
9、Unified Memory支持如何?
A:有api,更多是功能的封装,性能不好。
10、是否支持HPCG?
A:支持,性能还可以。
11、是否支持kokos?
A:后续发布的版本会支持,目前虽然编译通了,但性能不是太高。
12、是否支持PETSc?
A:目前PETSc对异构支持有HIP和Kokkos两种方式,支持的类型有限,支持vector相关的部分计算,matrix相关计算还在开发中,整体还不太可用,建议应用针对性的做异构移植和优化。
13、有无Clang环境?
A:直接用ROCm环境即可,ROCm环境就是基于LLVM+Clang环境构建的。
14、设备端数据结构是否可以用vector?
A:建议使用thrust cube等,不要用stl。
15、DCU芯片有没有CUDA的GPU direct和P2P类似的功能?
A:不支持,下一代有规划。
三、 转码移植基本问题
1、平台上如何进行cuda到hip的转码?
A:加载rocm环境可以直接使用hipify-perl命令,或者使用 hipconvertinplace-perl.sh 脚本对整个目录进行转码。
2、移植流程是怎样的?
A:1)profiling分析程序,找出耗时较多的部分——用时约60%-70%;2)移植,尽量减少cpu和dcu之间的数据搬迁,主要部分移植到dcu,较难移植的部分由cpu辅助去做。
3、核函数转换后字符串支持不太好,怎么办?
A:转换工具是辅助工具,转换后性能有差异,参考hip的一些开源项目。