Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore_RWKV.py中C++代码调用问题 #2

Open
bwmcheer opened this issue Jul 22, 2024 · 10 comments
Open

Restore_RWKV.py中C++代码调用问题 #2

bwmcheer opened this issue Jul 22, 2024 · 10 comments

Comments

@bwmcheer
Copy link

作者您好,我在Windows系统下无法调用wkv_op.cpp和wkv_cuda.cu文件,出现以下报错:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build
subprocess.run(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in
wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"],
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load
return _jit_compile(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile
_write_ninja_file_and_build_library(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library
_run_ninja_build(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error building extension 'wkv'

您分享一些解决办法吗?

@chenzean
Copy link

诶,我可以直接run。

@Yaziwel
Copy link
Owner

Yaziwel commented Jul 22, 2024

作者您好,我在Windows系统下无法调用wkv_op.cpp和wkv_cuda.cu文件,出现以下报错: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build subprocess.run( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"], File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load return _jit_compile( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile _write_ninja_file_and_build_library( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library _run_ninja_build( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error building extension 'wkv'

您分享一些解决办法吗?

你参考一下这个issue看看能不能解决问题: OpenGVLab/Vision-RWKV#23
pip install ninja --upgrade

@bwmcheer
Copy link
Author

作者您好,我在Windows系统下无法调用wkv_op.cpp和wkv_cuda.cu文件,出现以下报错: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build subprocess.run( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"], File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load return _jit_compile( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile _write_ninja_file_and_build_library( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library _run_ninja_build( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error building extension 'wkv'
您分享一些解决办法吗?

你参考一下这个issue看看能不能解决问题: OpenGVLab/Vision-RWKV#23 pip install ninja --upgrade

您好,我试了下这个issue中的解决办法,仍然无法运行程序,出现如下报错:
C:\ProgramData\Anaconda3\envs\rwkvv\python.exe F:/Restore-RWKV-main/model/Restore_RWKV.py
Using C:\Users\Administrator\AppData\Local\torch_extensions\torch_extensions\Cache\py38_cu113 as PyTorch extensions root...
Detected CUDA files, patching ldflags
Emitting ninja build file C:\Users\Administrator\AppData\Local\torch_extensions\torch_extensions\Cache\py38_cu113\wkv\build.ninja...
Building extension module wkv...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/2] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\nvcc --generate-dependencies-with-compile --dependency-output wkv_cuda.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=wkv -DTORCH_API_INCLUDE_EXTENSION_H -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\torch\csrc\api\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\TH -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\ProgramData\Anaconda3\envs\rwkvv\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -res-usage "--maxrregcount 60" --use_fast_math -O3 "-Xptxas -O3" -DTmax=262144 -c F:\Restore-RWKV-main\model\cuda\wkv_cuda.cu -o wkv_cuda.cuda.o
FAILED: wkv_cuda.cuda.o
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\nvcc --generate-dependencies-with-compile --dependency-output wkv_cuda.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=wkv -DTORCH_API_INCLUDE_EXTENSION_H -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\torch\csrc\api\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\TH -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\ProgramData\Anaconda3\envs\rwkvv\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -res-usage "--maxrregcount 60" --use_fast_math -O3 "-Xptxas -O3" -DTmax=262144 -c F:\Restore-RWKV-main\model\cuda\wkv_cuda.cu -o wkv_cuda.cuda.o
nvcc fatal : Unknown option '--maxrregcount 60'
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build
subprocess.run(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in
wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"],
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load
return _jit_compile(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile
_write_ninja_file_and_build_library(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library
_run_ninja_build(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error building extension 'wkv'

在Windows系统下需要用visual studio对wkv_op.cpp和wkv_cuda.cu文件进行编译吗?

1 similar comment
@bwmcheer
Copy link
Author

作者您好,我在Windows系统下无法调用wkv_op.cpp和wkv_cuda.cu文件,出现以下报错: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build subprocess.run( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"], File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load return _jit_compile( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile _write_ninja_file_and_build_library( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library _run_ninja_build( File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error building extension 'wkv'
您分享一些解决办法吗?

你参考一下这个issue看看能不能解决问题: OpenGVLab/Vision-RWKV#23 pip install ninja --upgrade

您好,我试了下这个issue中的解决办法,仍然无法运行程序,出现如下报错:
C:\ProgramData\Anaconda3\envs\rwkvv\python.exe F:/Restore-RWKV-main/model/Restore_RWKV.py
Using C:\Users\Administrator\AppData\Local\torch_extensions\torch_extensions\Cache\py38_cu113 as PyTorch extensions root...
Detected CUDA files, patching ldflags
Emitting ninja build file C:\Users\Administrator\AppData\Local\torch_extensions\torch_extensions\Cache\py38_cu113\wkv\build.ninja...
Building extension module wkv...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/2] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\nvcc --generate-dependencies-with-compile --dependency-output wkv_cuda.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=wkv -DTORCH_API_INCLUDE_EXTENSION_H -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\torch\csrc\api\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\TH -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\ProgramData\Anaconda3\envs\rwkvv\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -res-usage "--maxrregcount 60" --use_fast_math -O3 "-Xptxas -O3" -DTmax=262144 -c F:\Restore-RWKV-main\model\cuda\wkv_cuda.cu -o wkv_cuda.cuda.o
FAILED: wkv_cuda.cuda.o
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\nvcc --generate-dependencies-with-compile --dependency-output wkv_cuda.cuda.o.d -Xcudafe --diag_suppress=dll_interface_conflict_dllexport_assumed -Xcudafe --diag_suppress=dll_interface_conflict_none_assumed -Xcudafe --diag_suppress=field_without_dll_interface -Xcudafe --diag_suppress=base_class_has_different_dll_interface -Xcompiler /EHsc -Xcompiler /wd4190 -Xcompiler /wd4018 -Xcompiler /wd4275 -Xcompiler /wd4267 -Xcompiler /wd4244 -Xcompiler /wd4251 -Xcompiler /wd4819 -Xcompiler /MD -DTORCH_EXTENSION_NAME=wkv -DTORCH_API_INCLUDE_EXTENSION_H -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\torch\csrc\api\include -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\TH -IC:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\ProgramData\Anaconda3\envs\rwkvv\Include -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -res-usage "--maxrregcount 60" --use_fast_math -O3 "-Xptxas -O3" -DTmax=262144 -c F:\Restore-RWKV-main\model\cuda\wkv_cuda.cu -o wkv_cuda.cuda.o
nvcc fatal : Unknown option '--maxrregcount 60'
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1808, in _run_ninja_build
subprocess.run(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "F:/Restore-RWKV-main/model/Restore_RWKV.py", line 13, in
wkv_cuda = load(name="wkv", sources=["F:/Restore-RWKV-main/model/cuda/wkv_op.cpp", "F:/Restore-RWKV-main/model/cuda/wkv_cuda.cu"],
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load
return _jit_compile(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1425, in _jit_compile
_write_ninja_file_and_build_library(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1537, in _write_ninja_file_and_build_library
_run_ninja_build(
File "C:\ProgramData\Anaconda3\envs\rwkvv\lib\site-packages\torch\utils\cpp_extension.py", line 1824, in _run_ninja_build
raise RuntimeError(message) from e
RuntimeError: Error building extension 'wkv'

在Windows系统下需要用visual studio对wkv_op.cpp和wkv_cuda.cu文件进行编译吗?

@Yaziwel
Copy link
Owner

Yaziwel commented Jul 22, 2024

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

@bwmcheer
Copy link
Author

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

感谢您及时的回复,我打算换到Linux系统了。

@Shaosifan
Copy link

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

感谢您及时的回复,我打算换到Linux系统了。

请问您解决了不呢?

@bwmcheer
Copy link
Author

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

感谢您及时的回复,我打算换到Linux系统了。

请问您解决了不呢?

解决了,直接在Linux系统中运行代码即可。

@Shaosifan
Copy link

Shaosifan commented Jul 29, 2024

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

感谢您及时的回复,我打算换到Linux系统了。

请问您解决了不呢?

解决了,直接在Linux系统中运行代码即可。

好的好的,谢谢。请问您训练一轮要花多长的时间呢,是否需要将整个300k iters都跑完啊?

@bwmcheer
Copy link
Author

你好,似乎是nvcc fatal : Unknown option '--maxrregcount 60'这里出错了,你可以试试在源文件里把这个参数删掉去debug试试。Windows运行似乎很多问题,建议切换到linux系统。我这边应该解决不了这个问题,你可以去Vision-RWKV那里问问,或者加RWKV的技术讨论QQ群:325154699

感谢您及时的回复,我打算换到Linux系统了。

请问您解决了不呢?

解决了,直接在Linux系统中运行代码即可。

好的好的,谢谢。请问您训练一轮要花多长的时间呢,是否需要将整个300k iters都跑完啊?

您好,我把模型用在了其他图像处理任务。总的来说,RWKV的训练时间会慢点。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants