各位坛友,我们有考虑搭建CUDA运算物理环境的想法,大家有无考虑过如何计算需要多少GPU服务器提供计算服务? 将程序放在物理机器上运行是一种,但这方法没法做更细致的代码分析,有没有其他的实现手段可以在程序运行时监控CPU或GPU的计算效能?
或者换句话说,能否监控到我某个程序在运行时,CPU或GPU进行了多少次的浮点运算?消耗的时间是多少?
各位坛友,我们有考虑搭建CUDA运算物理环境的想法,大家有无考虑过如何计算需要多少GPU服务器提供计算服务? 将程序放在物理机器上运行是一种,但这方法没法做更细致的代码分析,有没有其他的实现手段可以在程序运行时监控CPU或GPU的计算效能?
或者换句话说,能否监控到我某个程序在运行时,CPU或GPU进行了多少次的浮点运算?消耗的时间是多少?
需要多少计算资源,多少设备,多少存储空间,这个需要根据具体的任务和规模估算。
多节点/多GPU的话,还需要考虑您的算法是否适合拆分,通信开销如何等。
不明白“更细致的代码分析”指的是什么?建议用小规模的数据验证算法,跑profiler看看资源利用程度如何。
所谓“运行时监控计算效能”,可以简单地看到占用率,但用的是否合理,跑到峰值的多少比例似乎无法简单得到。同样建议看profiler结果。
您可以在计算的程序里面自己加上计时的代码,评估用时情况,也可以在profiler结果里面看每个kernel跑了多长时间。某时刻进行多少次计算,似乎无法直接得到,只能在profiler的结果里面看到一些相关的信息,比如SM是处于空闲还是繁忙等。
祝您新年快乐!