Replies: 40 comments
-
When 'Save' is clicked in the PAC Gtk window and the sudo password is needed in the terminal, perhaps have the terminal window automatically come to the front, or perhaps have a notice pop up in the PAC window to prompt for an action in the terminal. As it is now, when the terminal window is behind the PAC window, it is not obvious for new users that terminal is waiting for sudo input. |
Beta Was this translation helpful? Give feedback.
-
It's a good idea, though I will have to figure out how to not prompt the user after the credentials are entered the first time and still valid. Perhaps I can look at the delay to finish. It it is longer than a few seconds, the tell the user to check the window. I will also need to figure out how to construct a gtk dialog box... |
Beta Was this translation helpful? Give feedback.
-
@dormiy @zhenyu-repo Any ideas? I'm struggling with code to open a dialog before executing the batch file and then closing the dialog when complete. Below is code I was using to run the dialog in another thread. In the main thread, I use a dialogWin.close() call to close the dialog. It almost works. It displays the message, runs the bash file but gets error when running dialogWin.close() or hide or destroy. Here are error details:
Here is the code:
|
Beta Was this translation helpful? Give feedback.
-
I found that this code run after batch complete doesn't give any errors, but it looks like the destroy command never makes it to the dialog running in the new thread. The dialog doesn't close and the final join statement is stuck waiting for the process to finish.
|
Beta Was this translation helpful? Give feedback.
-
Maybe this is what I need: |
Beta Was this translation helpful? Give feedback.
-
Good luck, I'm new to Gtk, not sure what caused this. I guess you'll get it fixed this weekend 👍 |
Beta Was this translation helpful? Give feedback.
-
One feedback, I notice you have duplicate code blocks in multiple files, suggest moving them in one file/module and encapsulate them as a function. If you have similar design for other features, it would be better to refactor the same way.
|
Beta Was this translation helpful? Give feedback.
-
@csecht Seems like you gave me quite a challenge with your apparently simple request. I still have not found a solution, but I have cleaned up my test cases into different branches:
I may have to let my thoughts brew on this for a while and move on to working on some other things. |
Beta Was this translation helpful? Give feedback.
-
Not sure if there is an easy way to do this as each of these metadata items are local to the file where they are defined and could be different in each file, though many could be the same. Not sure if I call a method in another module if it will use metadata as define in the calling module. |
Beta Was this translation helpful? Give feedback.
-
Reddit saved the day! Solution for the message-box approach found: I hope I can clean up and release this approach over the weekend. |
Beta Was this translation helpful? Give feedback.
-
@csecht I have completed the implementation of this feature. It is implemented in this branch |
Beta Was this translation helpful? Give feedback.
-
Yes, that got my attention with the red highlighted message box at the bottom of the PAC window. Hard to miss! The use of that area for general information and status updates is a good idea too. Cheers. |
Beta Was this translation helpful? Give feedback.
-
@csecht I am getting prepared to release v2.3.0. In addition to the amdgpu-pac message box, I have implemented checks of card compatibility throughout the reading of card details. Any card that has issues, will be flagged as incompatible and the pac and monitor tools will not use them. amdgpu-ls should still give the details it has for all AMD GPUs. I think this should make the tools much more robust. It would be great if you can give it a try and let me know of any issues. Thanks! The latest is now on master. |
Beta Was this translation helpful? Give feedback.
-
I downloaded v2.3.0 from Master and see that now both -monitor and -pac no longer show the decoded model names in their windows, but instead show the short or display model names, so something broke there with this recent version. The correct preferred model name (Decoded Device ID) is still listed in amdgpu-ls, however (example from -ls);
Also, it would be helpful in README, under the ## amdgpu-pac section, to mention that AUTO/default fan control can be restored by entering a negative integer as the % value. (I've always just used -1). Everything else seems to work well with my RX 460 / RX 570 host. Looking good! |
Beta Was this translation helpful? Give feedback.
-
...BTW, the decoded device IDs were properly displayed in the monitor and pac windows with last version I downloaded from the message_box branch |
Beta Was this translation helpful? Give feedback.
-
I just found a new problem while testing on a Ubuntu 16.04 install. When Python version is older than 3.6, the code will give a Syntax error before any of my checking gets done, so the program can not inform the user of the Python revision compatibility problem. Interim solution is to create stripped down utility amdgpu-chk using pre3.6 syntax to check, but it would be better if the main utilities could check on their own. Let me know if anyone has ideas on this one. |
Beta Was this translation helpful? Give feedback.
-
One of the options is: create a shell script as the entry point, move the Python version checking logic to this shell script, if >3.6, then call your original Python script. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the suggestion. I did make a Python2 compliant tool amdgpu-chk, which can do this check even if the user is using python 2, but it would seem kind of cludgy to make this a wrapper for all other scripts. I may just include this new script in the package and reference it in a users guide. |
Beta Was this translation helpful? Give feedback.
-
If Python2 is not installed, then your amdgpu-chk won’t work, so it would be better to check Python version in shell script. You just need to wrap your main Python script(the entry program), no need to wrap all other scripts, I don’t understand why you need to make it a wrapper for all other scripts. |
Beta Was this translation helpful? Give feedback.
-
I tested the new script in both python 2 and 3 to make sure it works in both. But that is with only the 2.7.12 version of python 2. I made the script as simple as possible, so hopefully that will not be an issue. I haven't pushed this version yet , since the system in now using an old version of git. Don't want to mess up the repository... |
Beta Was this translation helpful? Give feedback.
-
With amdgpu-ls and with the --clinfo option, the vBIOS for my RX 570 card running its preloaded 'mining' bios is listed as
|
Beta Was this translation helpful? Give feedback.
-
It would be a useful feature, but currently, amdgpu-utils only reads the file vbios_version driver file in the card path as given by amdgpu-ls. If there is a linux tool like clinfo to get these details, I can make a call to it just like I do for clinfo. I probably don't have time for that now, since I have 2 major items I want to work on:
Let me know if you identify a Linux project that can be leveraged for this capability. |
Beta Was this translation helpful? Give feedback.
-
IDEA: Add ability to set fan speed curves over GPU temperature ranges. This is feature of most GPU control utilities that users might find useful in amdgpu-utils. e.g. It is used in the vega-fan-control module at https://github.com/dasunsrule32/radeon-scripts (though I haven't tried it). |
Beta Was this translation helpful? Give feedback.
-
IDEA: Add specific discussion of overclocking to USER_GUIDE. 'Overclock' is listed as a topic for amdgpu-utils but it isn't explicitly covered in the docs and may be something of interest to users, particularly Linux gamers. |
Beta Was this translation helpful? Give feedback.
-
Is amdgpu-utils functional with RX 5700-series Navi cards? If not, are there update plans to accommodate those new generation of cards. I'm considering buying one for my E@H host, but won't until I can use amdgpu-utils to optimize it. |
Beta Was this translation helpful? Give feedback.
-
I imagine it to be consistent with Type 2 cards, like Radeon VII, but I have not tried one. |
Beta Was this translation helpful? Give feedback.
-
In one of the other Issues discussions, I mentioned working on a bash script to automate changing task multiplicities for optimal running of Einstein@Home tasks. I have a script running well for the gravitational wave tasks and figure it's time to code it for Python. (The script is not really ready for distribution yet because I'm waiting to learn VRAM requirements for the full range of task classes in the Spotlight data series. Once that info is available, conditional statements will need to be optimized.) I'm only at the stage of viewing the beginner level YouTube 'learn Python' videos, but can see that I will want to recycle some of the environment checking and GPU reporting functions from gpu-utils. The whole object-oriented programming concept and structure is still a bit baffling to me. I'm guessing that cutting and pasting code to suit my purposes will not be straight forward. Are there any general bits of advice you might have for re-purposing parts of gpu-utils code? BTW, Rick, I took up your suggestion of using an IDE and am quite happy with PyCharm, though I'm only using it mainly as a text editor at this stage. |
Beta Was this translation helpful? Give feedback.
-
@csecht Great to hear that you are getting into Python! As you get more familiar with the syntax, PyCharm will guide you to PEP8 style compliant code, but don't worry about it yet. I have gone through multiple rounds of refactoring of my projects, each time being more PEP8 compliant and more 'Pythonic'. For me, taking on the use of dictionaries was the first big challenge. Kind of used like structures in C. Don't avoid dictionaries, the earlier you embrace them the better. Using classes is a different way of thinking about programming when compared to scripting languages. On my later projects, including GPU utils, I started with classes (in GPUmodules) and built the rest of the code around it. Each utility has a very simple main that is basically an outline, with all of the work done in class methods. GPU utils has an open source license (GPLv3) feel free to re-use any code you like. Typically when I get an idea from other code I put a link to it in a comment and when I reuse code, I give credit. But wouldn't want you to get too bogged down with details as you are learning, so consider this comment as permission to reuse any code in GPU utils as you need. I will be less active on GitHub as I am recovering from surgery, but when I am back, let me know if you have any questions as you make progress on your project. |
Beta Was this translation helpful? Give feedback.
-
Well, I did it! I just posted an alpha version of a Python utility for counting and analyzing boinc-client tasks. |
Beta Was this translation helpful? Give feedback.
-
Great progress! I passed on GitHub integration in PyCharm. It is a good idea to become very proficient in git command line first. I suggest checking your code with |
Beta Was this translation helpful? Give feedback.
-
I have opened this thread to facilitate any discussions on development ideas and code refinements. Potential topics:
Beta Was this translation helpful? Give feedback.
All reactions