clbr / radeontop

GNU General Public License v3.0
810 stars 72 forks source link

Use family_id and external_rev_id to detect GFX11/RDNA3, Raphael APU, Me… #154

Closed Umio-Yasuno closed 1 year ago

Umio-Yasuno commented 1 year ago

…ndocino APU

family_id and external_rev_id can be used to identify most AMD GPUs, but for now use them for GPUs that are not in the database.

Resolve #151 Resolve #153

Reference

clbr commented 1 year ago

getfamily_from_id should be called inside getfamily, otherwise the mem path may fail. family_id and and chip_external_rev do not need to be exported - they can be removed from the header and marked static inside the file.

However, I'm not sure I want to use this general approach. First of all it seems like manual updates would be needed every time, when until now it was 90% scripted. Second those GFX62432 names are quite ugly and nobody can interpret what they mean.

clbr commented 1 year ago

On the tech side, I forgot to say the GFX defines should also be inside amdgpu.c.

Umio-Yasuno commented 1 year ago

However, I'm not sure I want to use this general approach. First of all it seems like manual updates would be needed every time, when until now it was 90% scripted.

Scripting may be possible since the family_id and external_rev_id ranges are aggregated in the src/amd/addrlib/src/amdgpu_asic_addr.h.

Since AMDGPU drivers no longer require DeviceID, other methods will be needed to update the database in the future.

Second those GFX62432 names are quite ugly and nobody can interpret what they mean.

In terms of code names, it seems to me that it is no different than any other.
Can users see the stars and the names that combine colors and fish and understand their meanings?

Mesa3D has dropped the color and fish names and uses names like Navi21 , but radeontop continues to use color and fish names.

Umio-Yasuno commented 1 year ago

getfamily_from_id should be called inside getfamily, otherwise the mem path may fail. family_id and and chip_external_rev do not need to be exported - they can be removed from the header and marked static inside the file.

Changed: https://github.com/clbr/radeontop/pull/154/commits/ab7a242d80df6d889bf55f85d59609f6cee63bd9

Umio-Yasuno commented 1 year ago

There is also the option of using marketing names instead of code names.
The marketing name can be got from the amdgpu_get_marketing_name function, which returns "AMD Radeon Graphics" if it is not in the data/amdgpu.ids.

https://gitlab.freedesktop.org/mesa/drm/-/blob/main/amdgpu/amdgpu_device.c#L293-299
https://gitlab.freedesktop.org/mesa/drm/blob/main/data/amdgpu.ids

Umio-Yasuno commented 1 year ago

Close PR due to no progress. I will prioritize the development of alternatives.