Closed antonysigma closed 4 years ago
This change also solves #41, #44, #48, #30 and #33. Comments are welcome.
This is incredible! Will comment as much as I can, but I don't really know much about Halide (Felix handled that part). Very happy to merge this (after comments of course).
Can you comment on "This change cripples the CUDA engines". What functionality are we losing exactly?
Can you comment on "This change cripples the CUDA engines". What functionality are we losing exactly?
I meant those pycuda
specific device-host data transfer intrinsic in the module proximal.algorithms.pock_chambolle
, namely the following lines of code:
adapter.scalar(1.0)
andadapter.to_np(Ktb)
.Actually I didn't mean to remove the code. I have now reverted most of them back. The only catch is that Travis CI cannot spawn a GPU machine to test the project. Please feel free to review pock_chambolle.py
.
Ok, it looks fine to me. Should I merge this in?
@SteveDiamond Yes please. Thank you very much!
In the meantime, I am working on another draft PR to update test_poisson.py
and test_mask.py
. I will ping you when I am ready.
Changelogs:
Use Meson build system to handle all C++ compile/link dependencies;
Update Halide code to version 8.0;
Auto-schedule Halide code whenever possible;
Add C++/Python interfaces to Halide-generated code with automatic C-to-Fortran casting and dimension broadcasting;
Rewrite
proximal.halide.halide.Halide
to leverage on Meson build. ~This change cripples the CUDA engines;~Optimize scale-offset routines in
prox()
and update steps in*admm.solve()
with Numexpr, so they can leverage on caching and parallel compute on multicore CPU. This change cripples the CUDA engines;Rewrite test scripts in the folder
proximal/tests
to run via Pytest. Test scripts that are work-in-progress are renamed to_test_*.py
Rewrite the Travis CI script to test solely the following environment: Ubuntu 18.04 + Halide 8.0 + Python 3.6. There are plans to include Ubuntu 20.04 in the CI test;
Format C++ code with Google-style guide. Config script included as
proximal/halide/.clang-format
;Format Python code with Google-style guide. Config script included as
proximal/.style.yapf
.