SD1.5的UNet2DConditionModel 额外增加输入模块后使用nexfort接口进行编译报错
xiangcp opened this issue · 10 comments
Your current environment information
PyTorch version: 2.3.1+cu121
OneFlow version: path: ['/home/miniconda3/envs/sd/lib/python3.10/site-packages/oneflow'], version: 0.9.1.dev20240729+cu121, git_commit: f230775, cmake_build_type: Release, rdma: True, mlir: True, enterprise: False
Nexfort version: 0.1.dev260
OneDiff version: 1.2.1.dev6
OneDiffX version: unknown version
🐛 Describe the bug
相对于原始UNet2DConditionModel多了三个输入模块,down_block_add_samples,mid_block_add_sample,up_block_add_samples
请问下,怎么解?有没有类似的文档或者示例
nexfort 编译的 options 里面增加一个字段 "inductor.optimize_linear_epilogue": false 试一下呢
"inductor.optimize_linear_epilogue": false
TypeError: nexfort_compile() got an unexpected keyword argument 'inductor.optimize_linear_epilogue'
貌似没这个参数
nexfort_compile(your_model, options={ 'inductor.optimize_linear_epilogue': False })
nexfort_compile(your_model, options={ 'inductor.optimize_linear_epilogue': False })
我是这样输入的,pipe.unet = compile(pipe.unet, backend="nexfort",options={ 'inductor.optimize_linear_epilogue': False })
还是报错
nexfort_compile
我用你这个方法测了下,没问题,编译成功了,很牛逼,非常感谢!
nexfort_compile(your_model, options={ 'inductor.optimize_linear_epilogue': False })
再请教下,每次不同的输入尺寸的都会出发再次编译,这里怎么处理?
nexfort_compile(your_model, options={ 'inductor.optimize_linear_epilogue': False })
再请教下,每次不同的输入尺寸的都会出发再次编译,这里怎么处理?
用你常用的几种分辨率推理一下,做下预热。后面遇到类似分辨率会自动命中缓存。
nexfort_compile(your_model, options={ 'inductor.optimize_linear_epilogue': False })
我是这样输入的,pipe.unet = compile(pipe.unet, backend="nexfort",options={ 'inductor.optimize_linear_epilogue': False }) 还是报错
如果调用 compile 然后显式指定 backend=nexfort 的话,options 应该是
options = {
"options": {
"inductor.optimize_linear_epilogue": False,
},
"dynamic": True, # 如果你需要动态分辨率,就加上这个
}
我想问问你加上"inductor.optimize_linear_epilogue": False,后编译时间有没有变长很多? @xiangcp
我的话原本20分钟编完 加上以后一个小时都没出来