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

Run CI on more architectures and more operating systems #163

Closed
wants to merge 1 commit into from
Closed

Run CI on more architectures and more operating systems #163

wants to merge 1 commit into from

Conversation

DilumAluthge
Copy link
Member

Before this pull request, we run CI on the following OS+arch combinations:

  • Linux x64
  • Windows x64

After this pull request, we run CI on the following OS+arch combinations:

  • Linux x64
  • Windows x64
  • macOS x64
  • Linux x86
  • Windows x86

@DilumAluthge
Copy link
Member Author

@chriselrod Of the following, are there any OS+arch combinations that LoopVectorization does NOT support? If so, let me know and I'll remove them from the CI matrix.

  • Linux x64
  • Windows x64
  • macOS x64
  • Linux x86
  • Windows x86

@chriselrod
Copy link
Member

I supported all of them before 0.9, but with all the VectorizationBase changes, I'll probably have to do some bug fixing.

It'd be good to be able to test on ARM as well.

@DilumAluthge
Copy link
Member Author

I supported all of them before 0.9, but with all the VectorizationBase changes, I'll probably have to do some bug fixing.

It'd be good to be able to test on ARM as well.

Unfortunately, GitHub Actions currently does not provide any ARM runners 😢

@DilumAluthge
Copy link
Member Author

with all the VectorizationBase changes

That reminds me - I was planning on going through all of the repositories in the LoopVectorization ecosystem to tweak their CI workflows in the same way that we tweaked the workflows in this repository.

If you can provide me with a full list of those package names (LoopVectorization.jl, VectorizationBase.jl, etc.), I'll work on tweaking each repo.

@chriselrod
Copy link
Member

LoopVectorization, VectorizationBase, and SLEEFPirates are the core packages related to SIMD.
But ArrayInterface is also important.

VectorizationBase.jl also needs a lot more tests. It has <50% coverage at the moment.

@codecov-io
Copy link

codecov-io commented Dec 3, 2020

Codecov Report

Merging #163 (b217c2c) into master (fded771) will decrease coverage by 1.09%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #163      +/-   ##
==========================================
- Coverage   92.00%   90.91%   -1.10%     
==========================================
  Files          33       33              
  Lines        4529     4214     -315     
==========================================
- Hits         4167     3831     -336     
- Misses        362      383      +21     
Impacted Files Coverage Δ
src/mapreduce.jl 77.14% <0.00%> (-9.70%) ⬇️
src/reconstruct_loopset.jl 85.71% <0.00%> (-3.97%) ⬇️
src/broadcast.jl 84.11% <0.00%> (-2.04%) ⬇️
src/lower_constant.jl 83.15% <0.00%> (-2.00%) ⬇️
src/determinestrategy.jl 95.75% <0.00%> (-1.70%) ⬇️
src/graphs.jl 85.85% <0.00%> (-1.15%) ⬇️
src/vectorizationbase_compat/contract_pass.jl 77.04% <0.00%> (-0.91%) ⬇️
src/costs.jl 84.74% <0.00%> (-0.74%) ⬇️
src/lower_store.jl 92.53% <0.00%> (-0.47%) ⬇️
src/filter.jl 88.88% <0.00%> (-0.40%) ⬇️
... and 19 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fded771...b217c2c. Read the comment docs.

@DilumAluthge DilumAluthge marked this pull request as draft December 3, 2020 08:52
@DilumAluthge
Copy link
Member Author

It's going to be a lot of noise if we add a bunch of CI jobs that always fail.

I think the best approach will be to add these jobs one by one as the bugs get fixed.

@DilumAluthge DilumAluthge deleted the dpa/run-ci-on-more-platforms branch December 3, 2020 09:01
@chriselrod
Copy link
Member

Okay. Was there a report of the failures?
I just installed Julia 1.5.3 for i686 to debug x86.
Hopefully it's only one set of problems.

@DilumAluthge
Copy link
Member Author

Yeah you can see all the logs.

Go to https://github.com/chriselrod/LoopVectorization.jl/runs/1490884724

And in the left hand side you'll see all the jobs - click a job to open the log.

@DilumAluthge
Copy link
Member Author

But ArrayInterface is also important.

@chriselrod Which ArrayInterface.jl should I make PRs to?

@chriselrod
Copy link
Member

SciML

@DilumAluthge
Copy link
Member Author

I've made several more PRs (to the packages you listed above) to tweak CI. Some tweaks include:

  1. Put the docs build and the doctests in two separate jobs. That way, we can still build and deploy the docs even if the doctests are failing.
  2. Move the Julia nightly CI into a separate file. That way, we can have two separate badges in the README: CI and CI (Julia nightly). And the CI badge will still be green even if tests are failing on Julia nightly.

@DilumAluthge
Copy link
Member Author

LoopVectorization, VectorizationBase, and SLEEFPirates are the core packages related to SIMD.
But ArrayInterface is also important.

VectorizationBase.jl also needs a lot more tests. It has <50% coverage at the moment.

I think I got all the packages you specified. Let me know if there are other packages that you'd like me to take a look at.

@DilumAluthge
Copy link
Member Author

I also tried to go through and update the CI workflows for the packages related to ProbabilityModels.jl. Let me know if I missed any packages.

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

Successfully merging this pull request may close these issues.

None yet

3 participants