Add fork README (mirror, contact, install) and ignore built DCNv4 .so.
Document the Gitea mirror for CVGL; extend .gitignore for extension artifacts. Keep CUDA im2col/col2im and setup version tweaks in DCNv4_op. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -24,3 +24,5 @@ segmentation/data
|
||||
segmentation/ckpts
|
||||
work_dirs/
|
||||
output
|
||||
*.so
|
||||
DCNv4_op/DCNv4/*.so
|
||||
@@ -62,7 +62,7 @@ def get_extensions():
|
||||
|
||||
setup(
|
||||
name="DCNv4",
|
||||
version="1.0.0.post2",
|
||||
version="1.0.0.post3+cvgl_k57",
|
||||
author="Yuwen Xiong, Feng Wang",
|
||||
url="",
|
||||
description="PyTorch Wrapper for CUDA Functions of DCNv4",
|
||||
|
||||
@@ -410,8 +410,40 @@ void _dcnv4_col2im_cuda(
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 8, true>;
|
||||
}
|
||||
break;
|
||||
case 25:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 25, true>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 25, true>;
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 24, true>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 24, true>;
|
||||
}
|
||||
break;
|
||||
case 49:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 49, true>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 49, true>;
|
||||
}
|
||||
break;
|
||||
case 48:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 48, true>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 48, true>;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("K=%ld\n", K);
|
||||
printf("K=%d\n", K);
|
||||
throw std::invalid_argument("invalid kernel shape");
|
||||
}
|
||||
} else {
|
||||
@@ -432,8 +464,40 @@ void _dcnv4_col2im_cuda(
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 8, false>;
|
||||
}
|
||||
break;
|
||||
case 25:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 25, false>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 25, false>;
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 24, false>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 24, false>;
|
||||
}
|
||||
break;
|
||||
case 49:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 49, false>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 49, false>;
|
||||
}
|
||||
break;
|
||||
case 48:
|
||||
if(check_backward_warpp(d_stride, D)){
|
||||
kernel = backward_kernel_dcn_warp_primitive<scalar_t, d_stride, stride_type, 1, 48, false>;
|
||||
}
|
||||
else {
|
||||
kernel = backward_kernel_dcn<scalar_t, d_stride, stride_type, 1, 48, false>;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("K=%ld\n", K);
|
||||
printf("K=%d\n", K);
|
||||
throw std::invalid_argument("invalid kernel shape");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,8 +279,20 @@ void _dcnv4_im2col_cuda(cudaStream_t stream,
|
||||
case 8:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 8, true>;
|
||||
break;
|
||||
case 25:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 25, true>;
|
||||
break;
|
||||
case 24:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 24, true>;
|
||||
break;
|
||||
case 49:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 49, true>;
|
||||
break;
|
||||
case 48:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 48, true>;
|
||||
break;
|
||||
default:
|
||||
printf("K=%ld\n", K);
|
||||
printf("K=%d\n", K);
|
||||
throw std::invalid_argument("invalid kernel shape");
|
||||
}
|
||||
} else {
|
||||
@@ -291,8 +303,20 @@ void _dcnv4_im2col_cuda(cudaStream_t stream,
|
||||
case 8:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 8, false>;
|
||||
break;
|
||||
case 25:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 25, false>;
|
||||
break;
|
||||
case 24:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 24, false>;
|
||||
break;
|
||||
case 49:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 49, false>;
|
||||
break;
|
||||
case 48:
|
||||
kernel = forward_kernel_dcn_reg<scalar_t, d_stride, stride_type, 1, 48, false>;
|
||||
break;
|
||||
default:
|
||||
printf("K=%ld\n", K);
|
||||
printf("K=%d\n", K);
|
||||
throw std::invalid_argument("invalid kernel shape");
|
||||
}
|
||||
}
|
||||
|
||||
19
README.md
19
README.md
@@ -1,4 +1,23 @@
|
||||
## Зеркало и сборка (Pikaliov / CVGL)
|
||||
|
||||
**Автор зеркала:** Пикалиов (Pikaliov) · `i@pikaliov.ru`
|
||||
**Репозиторий (Gitea):** https://git.lissad.keenetic.name/Pikaliov/DCN_custom_op
|
||||
**Апстрим OpenGVLab:** https://github.com/OpenGVLab/DCNv4
|
||||
|
||||
Каталог **`DCNv4_op`** — PyTorch CUDA-расширение (модуль `DCNv4`). Сборка из исходников:
|
||||
|
||||
```bash
|
||||
cd DCNv4_op
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
Нужны **CUDA** и согласованные **PyTorch / nvcc** (в `setup.py` при отсутствии CUDA сборка не выполняется). Пример импорта: `from DCNv4 import DCNv4`.
|
||||
|
||||
Лицензия исходного кода — **Apache-2.0**, см. файл `LICENSE`.
|
||||
|
||||
Ниже — оригинальный README проекта OpenGVLab (модели, таблицы, ссылки на веса).
|
||||
|
||||
---
|
||||
|
||||
# [DCNv4](https://arxiv.org/pdf/2401.06197.pdf)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user