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

Fix and improve the OpenCL implementation #124

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Kaleinthranx
Copy link

Overview of Changes:

OpenCL Compatibility: Updated both the OpenCL library and its API bindings, ensuring miner compatibility with both the latest and older AMD drivers.
DAG Generation: Modified the OpenCL DAG generation to support coins with a DAG size exceeding 4GB.
ProgPow Loop Optimization: Integrated the ProgPow loop directly into the search function for both OpenCL and CUDA, this improves the hashrate for OpenCL. The changes were also done to CUDA to avoid overcomplicating the ProgPow.cpp file.
Kernel Warnings & Compute Definition Fixes: Addressed kernel warnings and fixed the compute definitions for Nvidia GPUs when mining via OpenCL.

Acknowledgment:

Many of these enhancements and fixes were inspired or taken from xmrig, so a huge thanks to them.

Results & Observations:

After these modifications, the miner now seems to work seamlessly with both older and newer AMD drivers. Additionally, the OpenCL miner is now also operational for Nvidia cards when CUDA mining is disabled for that card. In terms of hashrate improvements on some or all cards, when testing with an AMD Radeon RX 6700 XT, there's a significant improvement in the hashrate - from approximately 2 MH/s to around 22 MH/s.

Future Scope:

While these updates address crucial areas, there are still facets I've left untouched - like fast exiting. My aim was to introduce just enough changes to make the current OpenCL implementation work well without changing too much of the existing codebase.

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.

1 participant