Releases: JuliaGPU/OpenCL.jl
Releases · JuliaGPU/OpenCL.jl
v0.10.1
v0.10.0
OpenCL v0.10.0
Very breaking release, with significant changes:
- adds a native compiler
- changes lots of APIs
- integrates with JLLs
For more details, see NEWS.md or the blog post on juliagpu.org.
Merged pull requests:
- Don't install additional packages on CI (#203) (@maleadt)
- Add Buildkite build status badge (#204) (@ClaroHenrique)
- enable dependabot for GitHub actions (#207) (@ranocha)
- Add POCL support and CI + major package rework (#210) (@maleadt)
- Support loading IL. (#211) (@maleadt)
- Various clean-ups (#212) (@maleadt)
- Fix the Program constructor checks. (#213) (@maleadt)
- Switch to global state + automatic pointer conversions (#214) (@maleadt)
- Switch from getindex overloading to getproperty (#215) (@maleadt)
- Remove CLString. (#216) (@maleadt)
- Always run tests on all available platforms/devices (#217) (@maleadt)
- Add a simple versioninfo function. (#218) (@maleadt)
- Preserve buffers from GC collection when doing unsafe things. (#219) (@maleadt)
- Replace blocking cl.launch by asynchronous cl.call. (#220) (@maleadt)
- Add a native compiler, using SPIR-V IL. (#222) (@maleadt)
- Wrap cl_ext.h and handle CL_PLATFORM_NOT_FOUND_KHR gracefully. (#223) (@maleadt)
- Disable argument conversion when calling raw OpenCL kernels. (#224) (@maleadt)
- Improve build status reporting. (#225) (@maleadt)
- Replace to_host by Array. (#226) (@maleadt)
- Buffer rework (#227) (@maleadt)
- Introduce clcall for ccall-like kernel invocation. (#228) (@maleadt)
- Add SVM Buffer type. (#229) (@maleadt)
- Switch CLArray to SVM. (#230) (@maleadt)
- Update examples and notebooks again. (#231) (@maleadt)
- Initial GPUArrays integration (#232) (@maleadt)
- Initial KernelAbstractions.jl integration. (#233) (@maleadt)
- Add compat bounds. (#238) (@maleadt)
- Use a distributed test harness (#239) (@maleadt)
- Test runner improvements (#240) (@maleadt)
- Enable the GPUArrays test suite. (#241) (@maleadt)
- Fixes (#242) (@maleadt)
- Make copies from host to device blocking (#243) (@maleadt)
- Add a couple of quirks. (#244) (@maleadt)
- Don't periodically recycle workers. (#245) (@maleadt)
- Synchronize before freeing memory in a finalizer. (#246) (@maleadt)
- Avoid synchronizing freed queues. (#247) (@maleadt)
- mapreduce: don't launch too many items. (#248) (@maleadt)
- Only
dev
SPIRVIntrinsics.jl if needed. (#251) (@maleadt) - Work around SVM issue on Intel. (#253) (@maleadt)
- Support passing LLVMPtrs. (#254) (@maleadt)
- Adapt to GPUArrays.jl transition to KernelAbstractions.jl. (#260) (@maleadt)
- Switch CI to 1.11. (#261) (@maleadt)
- SPIRVIntrinsics: add import/export helpers. (#262) (@maleadt)
- Adapt to JuliaGPU/GPUArrays.jl#567. (#265) (@maleadt)
- Bump LLVM-SPIRV translator. (#267) (@maleadt)
- Bump codecov/codecov-action from 4 to 5 (#268) (@dependabot[bot])
- Add the ability to test a single platform. (#269) (@maleadt)
- Type fixes for Windows. (#270) (@maleadt)
- Improve initialization warnings. (#271) (@maleadt)
- Don't use platform-dependent types. (#272) (@maleadt)
- Don't use platform-dependent types for
upsample
(#273) (@christiangnrd) - KernelAbstractions: Use fine-grained synchronization (#274) (@maleadt)
Closed issues:
- Support Windows (#199)
- PoCL as fallback driver (#200)
- Clang.jl bindings (#202)
- v0.9.0 breaks MacOS (#205)
- OpenCL.jl on MacOSX Ventura 13.2 (#206)
GPUArrays.default_rng(CLArray)
causesRandom
not defined in OpenCL (#235)- SPIRVIntrinsics: Unknown type Int8 on aarch64-linux (#236)
- Cannot pass pointers (#250)
- Novice view: warning about no JLLs more confusing than useful? (#263)
- OpenCL_jll.jl should check privilege level (#266)
v0.9.0
OpenCL v0.9.0
Closed issues:
- convert functions for CL_objects (#1)
- Scalar global work size/ local work size variables in cl.call (#2)
- Minimum device alloc size (#3)
- OpenCL 1.2 Functions (#16)
- Support for OpenCL floatN and doubleN types (#18)
- Show build log on kernel build failure (#27)
- Image support (#28)
- Compiling Julia to OpenCL SPIR instead of OpenCL C (#29)
- Integrate OpenCL <-> Julia Event systems (#35)
- Add tests for leaking OpenCL object (#46)
- Bug in examples\hands_on_opencl\ex08\matmul.jl (#64)
- Documentation (#84)
- OpenCL 2.0 problems (#100)
enqueue_write_buffer
andenqueue_read_buffer
arguments (#107)- OpenCL.wait and type stability (#108)
- Apparent OpenCL.read error (#110)
- Unhandled task failure on v0.5 (#111)
- Add high-level support for OpenCL.api.clCreateSubBuffer (#116)
- Conditional load of OpenCL.jl (#120)
- Provide deps/build.jl in OpenCL family of packages (#124)
- Segmentation fault in test/test_array on AMD CPU (#133)
- no method matching unsafe_string(::Ptr{Void}) (#138)
- Travis environment for Linux is broken (#143)
- use VersionParsing.jl to parse version numbers (#151)
- OpenCL test error (#152)
- map_mem / unmap! fails sporadically: array not mapped to buffer (#158)
- Problems with Travis (#163)
- Precompilation failing in Julia v1.0 (#165)
- updated notebook example for fractals, but the kernel doesn't produce correct results (#171)
- create_some_context causes Segmentation fault from REPL (#176)
- Tag a new release? (#181)
- Cannot create a buffer with a size than exceeds a UInt32 (#183)
- Change for behavior in includes? (#185)
- Fails to precompile for Julia v1.4.1 (#186)
- "cl.create_compute_context()" fails with an error on Fedora 32 x86-64 on an Intel NUC (#187)
- nbytes is coerced to UInt32 in Buffer outer constructor (#193)
- Help refactoring package to use OpenCL_jll (#195)
Merged pull requests:
- Always allow package to load (#177) (@jpsamaroo)
- Bump version from "0.8.0" to "0.8.1" (#182) (@DilumAluthge)
- Correct example in README (#188) (@eschnett)
- Added quick reference to README.md (#189) (@miakramer)
- README overhaul (#192) (@carstenbauer)
- Add OpenCL_jll dependence (#196) (@ClaroHenrique)
- Add Buildkite CI (#197) (@ClaroHenrique)
v0.8.1
OpenCL v0.8.1
Closed issues:
- Running tests with GPU on Travis CI (#121)
- Error creating context on Julia v0.6 (#137)
- Lack of @check on API usage can lead to unknown exceptions on OpenCL 1.1 versions like a Mesa driver. (#173)
- munmap_chuck(): invalid pointer (seg fault) using POCL (#179)
Merged pull requests:
- Additional fixes for Julia 1.0 support as well as failures on OpenCL 1.1 (#172) (@sambitdash)
- Test on AMDGPU machine as well (#174) (@vchuravy)
- Changes to examples code to support Julia v1 syntax (#175) (@lwabeke)
- Install TagBot as a GitHub Action (#180) (@JuliaTagBot)
- Bump version from "0.8.0" to "0.8.1" (#182) (@DilumAluthge)
Julia 1.0 support
Merge pull request #172 from sambitdash/master Additional fixes for Julia 1.0 support as well as failures on OpenCL 1.1
drop 0.5 + better generic conversion in set kernel arg
less complicated kernel arg convert....
Now one just needs to use pack structs and set kernel arg will automatically replace cl_inbuild types that have a different size from julia types (e.g. NTuple{3, Float32}
or Void
). One might still need to specify the alignment in a cl struct on the kernel to match julia layout.
v0.6.1
v0.6.0
- proper reference counting of contexts
- correct struct conversions for
__packed__
opencl structs
v0.5.2
Various improvements:
- compilation errors give a proper report now!
- set_arg! works for for more than primitive types now