gpt4 book ai didi

python - 如何知道安装了 numba 或 tensorflow 的 python 代码中每个 block 的最大线程数?

转载 作者:行者123 更新时间:2023-12-01 02:11:34 25 4
gpt4 key购买 nike

Python中是否有安装了numba或tensorflow的代码?例如,如果我想知道 GPU 内存信息,我可以简单地使用:

from numba import cuda
gpus = cuda.gpus.lst
for gpu in gpus:
with gpu:
meminfo = cuda.current_context().get_memory_info()
print("%s, free: %s bytes, total, %s bytes" % (gpu, meminfo[0], meminfo[1]))

在努巴。但我找不到任何代码可以为我提供每个 block 的最大线程信息。我希望代码能够检测每个 block 的最大线程数,并进一步计算每个方向上指定的 block 数。

最佳答案

from numba import cuda
gpu = cuda.get_current_device()
print("name = %s" % gpu.name)
print("maxThreadsPerBlock = %s" % str(gpu.MAX_THREADS_PER_BLOCK))
print("maxBlockDimX = %s" % str(gpu.MAX_BLOCK_DIM_X))
print("maxBlockDimY = %s" % str(gpu.MAX_BLOCK_DIM_Y))
print("maxBlockDimZ = %s" % str(gpu.MAX_BLOCK_DIM_Z))
print("maxGridDimX = %s" % str(gpu.MAX_GRID_DIM_X))
print("maxGridDimY = %s" % str(gpu.MAX_GRID_DIM_Y))
print("maxGridDimZ = %s" % str(gpu.MAX_GRID_DIM_Z))
print("maxSharedMemoryPerBlock = %s" % str(gpu.MAX_SHARED_MEMORY_PER_BLOCK))
print("asyncEngineCount = %s" % str(gpu.ASYNC_ENGINE_COUNT))
print("canMapHostMemory = %s" % str(gpu.CAN_MAP_HOST_MEMORY))
print("multiProcessorCount = %s" % str(gpu.MULTIPROCESSOR_COUNT))
print("warpSize = %s" % str(gpu.WARP_SIZE))
print("unifiedAddressing = %s" % str(gpu.UNIFIED_ADDRESSING))
print("pciBusID = %s" % str(gpu.PCI_BUS_ID))
print("pciDeviceID = %s" % str(gpu.PCI_DEVICE_ID))

这些似乎是当前支持的所有属性。我找到了列表here ,它与 CUDA 文档中的枚举值匹配,因此扩展它是相当简单的。例如,我添加了 CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9,现在可以按预期工作。

如果我这个周末有时间,我会尝试完善这些内容、更新文档并提交 PR。

关于python - 如何知道安装了 numba 或 tensorflow 的 python 代码中每个 block 的最大线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48654403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com