
测试结果: 
结论是：大概能达到纯显卡（75W，更高的没测）二分之一或三分之一的性能，显存不够的可以用用，主要是卷积层，卷积层cpu计算耗时很大，并且神经网络参数相对较少，线性层感觉cpu和显卡本来就差不太多

环境: 
    笔记本（游戏本）
    显卡: RTX4060 8GB 75W残血版
    CPU: i7-13700H
    内存: 16GB

1）线性层测试：
模型: 
    float32，120层，每层的输入输出维度都是2000，数据量1.789GB，每个线性层后面加一个LeakyReLU激活函数
数据: 
    60个数据，每个数据2000维度，分成两个批量（每个批量30个数据），数据量0.000447GB

训练一次（两个批量的数据）平均耗时
纯显卡: 4.13秒
纯CPU耗时: 14.7秒
模型分层，轮流传显卡里计算: 3.67秒（因为显存足够，实际上等于纯显卡）
模型分层，显卡已经被使用2.3GB: 6.5秒
模型分层，显卡已经被使用3.9GB: 9.5秒

2）卷积测试：
模型：
    float32，60层，卷积核输入输出channel都是3，卷积核大小5，数据量0.00005GB，每个线性层后面加一个LeakyReLU激活函数
数据：
    20个数据，每个数据3个通道*512宽*512高，分成两个批量（每个批量10个数据），数据量0.059GB

训练一次（两个批量的数据）平均耗时
纯显卡: 1.52秒
纯CPU耗时: 41秒
模型分层，轮流传显卡里计算: 3.36秒（因为显存足够，实际上等于纯显卡）
纯显卡，显卡已经被使用3.9GB: 23秒（cuda+torch奇葩的地方出现了，猜测是在显存不够的时候，舍弃一些计算反向梯度要用的缓存，反向梯度的时候重新计算，导致时间开销增大很多）
模型分层，显卡已经被使用3.9GB: 3.3秒



3）卷积测试1(test_middle_conv1.py)：
模型：
    float32，22层网络，卷积核大小5，每层网络两层卷积（30通道到60通道一层卷积，60通道回到30通道一层卷积）再加一个LeakyReLU激活函数，数据量0.0074GB，每个线性层后面加一个LeakyReLU激活函数
数据：
    6个数据，每个数据30个通道*512宽*512高，分成三个批量（每个批量2个数据），数据量0.059GB

训练一次（两个批量的数据）平均耗时
纯显卡: 3.73秒
纯CPU耗时: 44秒
模型分层，轮流传显卡里计算: 7.5秒（因为显存足够，实际上等于纯显卡）
纯显卡，显卡已经被使用3.9GB: 116秒
模型分层，显卡已经被使用3.9GB: 7.7秒
