Is there interest for an updated WattTool?

ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
edited June 16 in Mining
So...for personal reasons I've been working with AMD's (terrible) API on interfacing with their cards. So far I've gotten down to using their C++ example to throw over into C# for GUI reasons. I've accomplished reading everything (crudely...) and setting fan speeds+target temp and I'm down to the last part of dev'ing the clock+voltage "set" button out. After this, it'll be a complete WattTool with the exception of VRM modifications (which I doubt I could do, even if I had the datasheet for every I2C out there) but at least it SHOULD support the 500 series.

What I'm wondering is if there's any users out there who would use this tool over WattMan? If so, I'll upload the executable (I'm going to obscure it, so it's up to you whether you want to use it or not) and possibly Github the source (I have no issues with people looking at my source; I do have an issue with people "stealing" it).

Why this? I hated WattMan since the first day it came out. It's slow, it's clunky and it doesn't let you save profiles. Utterly useless as an OC tool. WattTool was an excellent solution to this, but it has become obsolete with the 500 series cards, and the dev seems to be MIA...so...why not?

ecs87 Radeon Tool http://elsonsmith.com/portfolio

EDIT: Excuse the terrible object names in the screenshot of Visual Studio behind the tool...I was rushing it between my 9am-5pm duties. I swear I'll properly name each and every XAML field in the final build!
Post edited by ecs87 on
«1

Comments

  • Techman34Techman34 Posts: 385Member ✭✭✭
    @ecs87 looks promising man - Wattman is the biggest software turd in history and I use WattTool regularly. Updates and new card support in your tool would be great.
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited June 18
    I guess two people interested is enough lol.

    Here's what it looks like so far:



    And here's a screenshot for you wondering if it supports the 500 series' power level 2 memory voltage and clock settings:



    It's pretty simple, launch the ecs87NGODguiApp.exe application, refresh the devices, select the device you want to tune, make mods, press Set, grab beer.

    ecs87NextGearOD.exe is the command line version of the tool. 99% of people will never need to touch this. DO NOT DELETE THIS FILE NOR RENAME IT! The GUI application runs commands through it. Without this file, the GUI application will not function properly at all.

    Grab it here: https://mega.nz/#!AdInlZII!v3loOycd1N6z9oJknSvUsqV5Qu4L4c0lQiYz1DspICI (Updated link for save+load of profiles)

    The application is free (and eventually will be open source when I'm not ashamed of the coding behind it) however any donations are greatly appreciated and will help continued development of this tool:

    ETH address: 0xF63cC55129ABd0dE58C204A4775A659Fc82b5a09
    Post edited by ecs87 on
  • spiz0rspiz0r Posts: 26Member
    Finally, it support P3 for rx580 bios.
    Great work!
  • 6g0dz6g0dz Posts: 13Member
    Awesome, I will try it out man! Can you share the source, it looks good, I opened it up on this laptop. PM the source plz?
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited June 18
    Sorry, as mentioned, I'm kinda embarrassed with the current source code structure. If your antivirus is detecting it as a malicious program it's most likely because I've obscured it. In due time I will definitely throw this up on Github.

    In other news, quick update. WORKING Save + Load of profiles (as great as the original WattTool was, saving+loading of profiles was a hit-or-miss)...pretty sure everyone has been looking forward to this for a while. CAREFUL: pick the device you want to target BEFORE loading a profile and know that it will apply the profile's settings IMMEDIATELY. Please let me know if there's any issues with this. I didn't get much time to test it across more than 1 device on Windows 7 and 1 on Windows 10 but it seems to be working perfectly fine.

    Also for those of you wondering the "magic" behind the command line program, feel free to take a look at your saved profiles in a text editor. It shows you exactly how to set clocks and voltages for each level and fan speeds (well, if you look close enough ;) )

    Update URL: https://mega.nz/#!AdInlZII!v3loOycd1N6z9oJknSvUsqV5Qu4L4c0lQiYz1DspICI
    Post edited by ecs87 on
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited June 19
    So many views...hardly any bumps lol. Even just a thanks is fine to keep this thread alive (or perhaps it can be worked into a sticky?) Just don't want it to drop off the first page that quickly before people even know about it.
  • ForceliteForcelite Posts: 23Member
    Looks great, so does this set the memory timings ? And if so, Does this take the place of a modded vbios?
  • cidmocidmo Posts: 314Member ✭✭
    i guess the main reason i use watt tool is that voltage offset setting, other than wattman is crap
    anyway to get that in there? other than that its looking good so far
    not really sure why watt tool was abandoned its pretty much essential on my rigs
    i hate flashing voltages into the bios cuz when ur running for months on end degradation changes what is stable
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    Unfortunately AMD does not provide any kind of API to modify memory timings (or at least none that are public). No tool that sets clocks and voltages is currently able to touch any straps.

    I think the voltage offsets were commands sent directly to the card and not through AMD's ADL. I guess I could program something in where you can offset the voltages by entering in a number which gets multiplied by 6.25 and this would be the offset; but I don't feel like this is a good way to go about it at all. I'll keep thinking on this one.
  • bctopicsbctopics Posts: 319Member ✭✭
    I'd be interested, Certainly would have to be open source for me to use it though. Either way goodluck!
  • cidmocidmo Posts: 314Member ✭✭
    edited June 20
    well the voltage offset is a trick that u can use after the miner has started
    the miner needs more juice for dag generation but when its mining it rarely spikes beyond a certain point, depending on ur stability
    it would be annoying setting each of those after mining starts rather than one global setting
    its actually already massively annoying to do the offset for each gpu after start and b4 shutdown
    but it drops my wattage 20-30 watts per card on the upper end
    ill go read thru the old wattool thread cuz i think his multiplier was 10x
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited June 20
    Why not just lower the DAG generation intensity in Claymore by using the -lidag argument? Saves you the hassle of even doing the voltage offset trick.

    Anyway, I have added a "halfass" voltage offset to the program but...I'm extremely unpleased with it. It just takes all the voltage numbers in the table and applies the offset to them (instead of contacting the i2c directly and programming it that way).




    I'm a bit hesitant on this release since it's so...half assed lol. Can I get some votes from the community? Yay? Nay?



    EDIT: So I've been doing some research and I've found a wrapper from "deeper-blue" over on overclocking.net for accessing the i2c:
    int I2C_WriteAndRead(int iAdapterIndex, int iLine, int iAddress, int iOffset, int iAction, int iDataSize, char *pI2Cdata)
    {
            ADLI2C *pI2C;
            ADLI2C I2Cstore;
            pI2C = &I2Cstore;
    
            pI2C->iSize = sizeof(ADLI2C);
            pI2C->iSpeed = 100;
            pI2C->iAction = iAction;
    
            pI2C->iLine = iLine;
            pI2C->iAddress = iAddress << 1;
    
            pI2C->iOffset = iOffset;
    
            pI2C->iDataSize = iDataSize;
            pI2C->pcData = pI2Cdata;
    
            return ADL_Display_WriteAndReadI2C(iAdapterIndex, pI2C);
    }
    Does anyone have ideas for the input parameters? I've got no idea what any of these should be other than iAdapterIndex lol.
    Post edited by ecs87 on
  • wirelessnet2wirelessnet2 Posts: 348Member ✭✭✭
    edited June 21
    mind adding phase gain controls for the reference 4xx series? super useful command
    besides that great job! love the guys who work for open-source programs. Thanks much :)
  • cidmocidmo Posts: 314Member ✭✭
    edited June 21
    i tried understanding that VRMtool thread u got that from, its a bit beyond me
    i should get into more of that stuff since i need tools that dont exist

    in terms of -lidag tho, even if u do the lowest amount it still uses more juice than mining
    simply cuz its using more hardware more consistently while its loading the DAG into memory
    i bet w0lf has got some ingenious system for this
    hes always been THE amd dude
    speaking of w0lf i bet he could help u with anything ADL
    theres 2 w0lfs on this forum im pretty sure hes the one with some red profile pic with white words or yellow words on it
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭

    mind adding phase gain controls for the reference 4xx series? super useful command
    besides that great job! love the guys who work for open-source programs. Thanks much :)

    For now, I'm staying away from i2c/VRM related modding until I can understand more about it. Sorry.
    cidmo said:

    i tried understanding that VRMtool thread u got that from, its a bit beyond me
    i should get into more of that stuff since i need tools that dont exist

    in terms of -lidag tho, even if u do the lowest amount it still uses more juice than mining
    simply cuz its using more hardware more consistently while its loading the DAG into memory
    i bet w0lf has got some ingenious system for this
    hes always been THE amd dude
    speaking of w0lf i bet he could help u with anything ADL
    theres 2 w0lfs on this forum im pretty sure hes the one with some red profile pic with white words or yellow words on it

    Ah, I thought that lidag would eliminate the voltage spike. I'm not going to bother wolf0, I'm sure he has more than enough things that he's trying to accomplish at the moment (other than getting rid of spam messages lol). I'll eventually find out more about it.

    In other news, the GUI app has been cleaned up (well...kinda) and uploaded to github:
    https://github.com/ecs87/AMD-GPU-Tool

    It still depends on the other CLI executable (included in the src folder), but I plan to eliminate it in the future and re-write it all in C#.
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited July 27
    Shameless bump.

    Fixed some bugs (mostly the BIOS information reading) and found out why it was taking forever for devices to refresh. The tool should be much quicker and uhh...accurate. As always the OC tool can be found here: http://elsonsmith.com/amd-gpu-tool/

    Bonus: Added a online straptool since the other one at http://doreymills.ca/cgi-bin/strapmod? got taken down and the one at http://www.portakalweb.net/ubermix/ doesn't seem to alter and return the correct values. Please let me know if there's anything missing or wrong with this particular tool: http://elsonsmith.com/amd-polaris-straptool/
  • Tre232Tre232 Posts: 13Member
    Does anyone know if this updated tool works with the newest AMD drivers for setting voltages?
  • Wolf0Wolf0 Posts: 274Member ✭✭
    ecs87 said:

    Why not just lower the DAG generation intensity in Claymore by using the -lidag argument? Saves you the hassle of even doing the voltage offset trick.

    Anyway, I have added a "halfass" voltage offset to the program but...I'm extremely unpleased with it. It just takes all the voltage numbers in the table and applies the offset to them (instead of contacting the i2c directly and programming it that way).




    I'm a bit hesitant on this release since it's so...half assed lol. Can I get some votes from the community? Yay? Nay?



    EDIT: So I've been doing some research and I've found a wrapper from "deeper-blue" over on overclocking.net for accessing the i2c:

    int I2C_WriteAndRead(int iAdapterIndex, int iLine, int iAddress, int iOffset, int iAction, int iDataSize, char *pI2Cdata)
    {
            ADLI2C *pI2C;
            ADLI2C I2Cstore;
            pI2C = &I2Cstore;
    
            pI2C->iSize = sizeof(ADLI2C);
            pI2C->iSpeed = 100;
            pI2C->iAction = iAction;
    
            pI2C->iLine = iLine;
            pI2C->iAddress = iAddress << 1;
    
            pI2C->iOffset = iOffset;
    
            pI2C->iDataSize = iDataSize;
            pI2C->pcData = pI2Cdata;
    
            return ADL_Display_WriteAndReadI2C(iAdapterIndex, pI2C);
    }
    Does anyone have ideas for the input parameters? I've got no idea what any of these should be other than iAdapterIndex lol.
    Inputs depend on the controller - don't fuck with one you can't ID.
  • sutheksuthek Posts: 158Member
    edited August 13
    ecs87 said:

    I'm amazing

    If you can ensure it works with the latest BETA drivers, on RX 580 cards, that would be as amazing as you are.
    People are unable to use the latest driver because claymore won't undervolt. You'd be the solution everyone is looking for.

    AKA. yes there is demand.

    **Edit**
    just tried with the latest driver and also the BETA driver.
    doesn't work.
    Needs to be updated. Hopefully the OP updates this. (or claymore releases an update to claymore soon.)
  • adlruizadlruiz Posts: 11Member
    agree, make compatible with the latest BETA drivers all give it a try and something for the wallet :smile:
  • yodiyodi Posts: 231Member ✭✭
    wattTools as nice settings and it s cool , but it get too much freezy issue
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    yodi said:

    wattTools as nice settings and it s cool , but it get too much freezy issue

    This is being worked on. I'm almost finished with an entirely C++ version of the tool. Calling C++ methods from C# was...slow...very slow.
    adlruiz said:

    agree, make compatible with the latest BETA drivers all give it a try and something for the wallet :smile:

    As soon as AMD gets off their ass and updates their display library (ADL) I will, in the meanwhile we're all kinda at the mercy of AMD unless we're going to write our own Windoze drivers from scratch (lol).
    suthek said:

    ecs87 said:

    I'm amazing

    If you can ensure it works with the latest BETA drivers, on RX 580 cards, that would be as amazing as you are.
    People are unable to use the latest driver because claymore won't undervolt. You'd be the solution everyone is looking for.

    AKA. yes there is demand.

    **Edit**
    just tried with the latest driver and also the BETA driver.
    doesn't work.
    Needs to be updated. Hopefully the OP updates this. (or claymore releases an update to claymore soon.)
    What the...where did that quote from me come from? Lol. As mentioned in the reply above, we're at the mercy of AMD. As soon as they release an update, I'll most likely drop an updated version of the tool that same day if not the next day.
  • Wolf0Wolf0 Posts: 274Member ✭✭
    I love Linux. No horrid issues undervolting.
  • sutheksuthek Posts: 158Member
    Wolf0 said:

    I love Linux. No horrid issues undervolting.

    But you can't use the leaked Win10 drivers?
    ecs87 said:

    Hold the door! Hold te door! Hol te dor! Holdor! Hodor!

    your program doesn't work with the latest released drivers either though i thought? 17.7.2. I suspect if you get it working with that release, it might work with the latest Beta? Might not need to wait? *shrugs*

  • Wolf0Wolf0 Posts: 274Member ✭✭
    suthek said:

    Wolf0 said:

    I love Linux. No horrid issues undervolting.

    But you can't use the leaked Win10 drivers?
    ecs87 said:

    Hold the door! Hold te door! Hol te dor! Holdor! Hodor!

    your program doesn't work with the latest released drivers either though i thought? 17.7.2. I suspect if you get it working with that release, it might work with the latest Beta? Might not need to wait? *shrugs*

    Who cares? I have a LOT less of an issue with DAG size due to better handling of the memory accesses, and the little issues I DO have will soon be resolved when AMD officially releases the fix...
  • therocktherock Posts: 18Member
    looks pretty solid
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited August 15
    Wolf0 said:

    Who cares? I have a LOT less of an issue with DAG size due to better handling of the memory accesses, and the little issues I DO have will soon be resolved when AMD officially releases the fix...

    I'm surprised that AMD hasn't already scooped you (and all the other individuals responsible for pioneering the card mods) up to be part of their dev team. Apparently you (all) know about their hardware and software much better than they even do.
    Post edited by ecs87 on
  • sutheksuthek Posts: 158Member
    edited August 15
    ecs87 said:

    Wait for a release

    There's now a released beta driver direct from AMD for the DAG fix.
    Source of news:
    http://www.legitreviews.com/amds-new-mining-block-chain-optimized-driver-tested_197095

    Link to download:
    http://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-Crimson-ReLive-Edition-Beta-for-Blockchain-Compute-Release-Notes.aspx

    Any chance you can get the tool working with that beta release?

    KEY NOTE from release:
    Important Notes
    This driver is provided as a beta level support driver which should be considered "as is" and will not be supported with further updates, upgrades or bug fixes.
    This driver is not intended for graphics or gaming workloads.


    Pretty sure this is it... From how I read that, they won't be doing any official release.
    "will not be supported with further updates, upgrades or bug fixes"
  • ecs87ecs87 Dekalb, ILPosts: 236Member ✭✭
    edited August 15
    I'll play around with it, but just releasing a driver doesn't do much for devs. We actually need to access the library (ADL: AMD Display Library SDK, to be specific) capable of interfacing with the driver (that's what my Windows AMD GPU tool does). Without the library, the device is speaking AMD language 2.0 while my software is only capable of speaking AMD language 1.0 (so...it would be like throwing someone who only knows English in a country with a language foreign to them). Can I load the driver files up in IDA to reverse them? Sure. Do I really want to? Nope. By the time I reverse everything, AMD will have probably dropped a ADL update; notice how they come up with a new one nearly every year? The last update was 8/10/2016 (http://developer.amd.com/display-library-adl-sdk/). Ahem...

    Now does this mean I'm not going to try? Definitely not. I'm downloading the drivers now and going to take a look as I'm typing this.
  • sutheksuthek Posts: 158Member
    I have very similar problems with the current latest fully released driver.
    I "think" your tool doesn't work with Crimson ReLive Edition 17.7.2.
    (I think I tested that? but I forget if I only tested the beta driver.)

    Maybe if you look at latest release Crimson ReLive Edition 17.7.2., you might solve it and also this beta I just sent you. (Maybe?)
Sign In or Register to comment.