不借助gdb在终端中调试代码
code.interact
可以与 try-except
语句结合使用,从而在异常发生时启动交互式调试环境,帮助你检查程序的状态和调试问题。这种方法通常用于在出现错误时,提供一个即时的交互式环境,使你能够查看错误的上下文并手动调试。
示例:结合 try-except
和 code.interact
假设我们有一个函数,在执行过程中可能会引发异常。我们可以在 except
块中使用 code.interact
启动一个交互式调试会话,允许开发者在出现错误时查看并修改相关变量。
import code
def divide(a, b):
return a / b
def main():
x = 10
y = 0 # 这里会引发 ZeroDivisionError
try:
result = divide(x, y)
print(f"Result is: {result}")
except Exception as e:
print(f"An error occurred: {e}")
# 启动交互式 shell,查看出错时的变量状态
code.interact(local=globals()) # 你也可以选择 `locals()` 或自定义命名空间
# 运行程序
main()
torch.set_float32_matmul_precision
设置 float32 矩阵乘法的内部精度。使用tensor core计算。
以较低精度运行 float32 矩阵乘法可能会显著提高性能,并且在某些程序中,精度损失的影响可以忽略不计。
视频中提到这种方式几乎是free的,精度损失几乎看不出差别
autocast加速和bf16精度
p10 Let's reproduce GPT-2 (124M)_哔哩哔哩_bilibili
torch.compile加速
可以通过model = torch.compile(model)来加速。加速主要来自于降低python开销和GPU读写