I equipped AMD GPU MI200 on my Ampere Altra Arm server.
To install the Mi200 GPU driver on the server, I downloaded the latest version of the ROCK-Kernel-Driver, and executed the kernel compilation as follows: (I used recent ROCm (v5.2.x))
make mrproper
make menuconfig
make -j 75
The following error came out, and I need your help.
implicit declaration of function : drm_sched_job_add, and so on
-mgeneral-regs-only’ is incompatible with the use of floating-point types
I would appreciate it if you could tell me how to install the MI200 driver on the Altra Arm server.
===================================================================================
drivers/gpu/drm/panfrost/panfrost_drv.c: In function ‘panfrost_copy_in_sync’:
drivers/gpu/drm/lima/lima_gem.c: In function ‘lima_gem_sync_bo’:
drivers/gpu/drm/panfrost/panfrost_drv.c:221:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration]
221 | ret = drm_sched_job_add_dependency(&job->base, fence);
| ^~~~~~~~
| drm_sched_rq_add_entity
drivers/gpu/drm/lima/lima_gem.c:270:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration]
270 | return drm_sched_job_add_implicit_dependencies(&task->base,
| ^~~~~~~~~~~
CC [M] drivers/gpu/drm/drm_scdc_helper.o
CC [M] drivers/gpu/drm/msm/dsi/dsi.o
CC [M] drivers/gpu/drm/drm_gem_atomic_helper.o
CC [M] drivers/gpu/drm/drm_gem_framebuffer_helper.o
CC [M] drivers/gpu/drm/drm_atomic_state_helper.o
CC [M] drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.o
CC [M] drivers/gpu/drm/drm_damage_helper.o
CC [M] drivers/gpu/drm/drm_format_helper.o
CC [M] drivers/gpu/drm/drm_self_refresh_helper.o
drivers/gpu/drm/lima/lima_gem.c: In function ‘lima_gem_add_deps’:
drivers/gpu/drm/lima/lima_gem.c:290:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration]
290 | err = drm_sched_job_add_dependency(&submit->task->base, fence);
| ^~~~~~~~
| drm_sched_rq_add_entity
drivers/gpu/drm/panfrost/panfrost_job.c: In function ‘panfrost_acquire_object_fences’:
drivers/gpu/drm/panfrost/panfrost_job.c:251:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration]
251 | ret = drm_sched_job_add_implicit_dependencies(job, bos[i],
| ^~~~~~~~~~~
drivers/gpu/drm/msm/msm_ringbuffer.c: In function ‘msm_ringbuffer_new’:
drivers/gpu/drm/msm/msm_ringbuffer.c:90:8: error: too few arguments to function ‘drm_sched_init’
90 | ret = drm_sched_init(&ring->sched, &msm_sched_ops,
| ^~~~~~
In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10,
from drivers/gpu/drm/msm/msm_ringbuffer.c:7:
./include/drm/gpu_scheduler.h:465:5: note: declared here
465 | int drm_sched_init(struct drm_gpu_scheduler *sched,
| ^~~~~~
make[4]: [scripts/Makefile.build:287: drivers/gpu/drm/msm/msm_ringbuffer.o] Error 1
make[4]: Waiting for unfinished jobs....
drivers/gpu/drm/msm/msm_gem_submit.c: In function ‘submit_fence_sync’:
drivers/gpu/drm/msm/msm_gem_submit.c:338:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration]
338 | ret = drm_sched_job_add_implicit_dependencies(&submit->base,
| ^~~~~~~~~~~
drivers/gpu/drm/msm/msm_gem_submit.c: In function ‘msm_parse_deps’:
drivers/gpu/drm/msm/msm_gem_submit.c:584:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration]
584 | ret = drm_sched_job_add_dependency(&submit->base, fence);
| ^~~~~~~~
| drm_sched_rq_add_entity
.
.
.
.
.
.
.
.
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_log2’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:98:19: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
98 | static inline int dml_log2(double x)
| ^~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_floor’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:72:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
72 | static inline double dml_floor(double a, double granularity)
| ^~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:72:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_ceil’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:67:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
67 | static inline double dml_ceil(double a, double granularity)
| ^~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:67:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_swath_need’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:170:13: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
170 | static void get_swath_need(
| ^~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:29:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_max’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:47:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
47 | static inline double dml_max(double a, double b)
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:47:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_vratio_pre’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:128:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
128 | static double get_vratio_pre(
| ^~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:128:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_refcyc_per_delivery’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
97 | static double get_refcyc_per_delivery(
| ^~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:29:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_pow’:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:105:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types
105 | static inline double dml_pow(double a, int exp)
I equipped AMD GPU MI200 on my Ampere Altra Arm server.
To install the Mi200 GPU driver on the server, I downloaded the latest version of the ROCK-Kernel-Driver, and executed the kernel compilation as follows: (I used recent ROCm (v5.2.x))
make mrproper make menuconfig make -j 75
The following error came out, and I need your help.
I would appreciate it if you could tell me how to install the MI200 driver on the Altra Arm server.
=================================================================================== drivers/gpu/drm/panfrost/panfrost_drv.c: In function ‘panfrost_copy_in_sync’: drivers/gpu/drm/lima/lima_gem.c: In function ‘lima_gem_sync_bo’: drivers/gpu/drm/panfrost/panfrost_drv.c:221:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration] 221 | ret = drm_sched_job_add_dependency(&job->base, fence); | ^
~~~~~~~ | drm_sched_rq_add_entity drivers/gpu/drm/lima/lima_gem.c:270:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration] 270 | return drm_sched_job_add_implicit_dependencies(&task->base, | ^~~~~~~~~~~ CC [M] drivers/gpu/drm/drm_scdc_helper.o CC [M] drivers/gpu/drm/msm/dsi/dsi.o CC [M] drivers/gpu/drm/drm_gem_atomic_helper.o CC [M] drivers/gpu/drm/drm_gem_framebuffer_helper.o CC [M] drivers/gpu/drm/drm_atomic_state_helper.o CC [M] drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.o CC [M] drivers/gpu/drm/drm_damage_helper.o CC [M] drivers/gpu/drm/drm_format_helper.o CC [M] drivers/gpu/drm/drm_self_refresh_helper.o drivers/gpu/drm/lima/lima_gem.c: In function ‘lima_gem_add_deps’: drivers/gpu/drm/lima/lima_gem.c:290:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration] 290 | err = drm_sched_job_add_dependency(&submit->task->base, fence); | ^~~~~~~~ | drm_sched_rq_add_entitydrivers/gpu/drm/panfrost/panfrost_job.c: In function ‘panfrost_acquire_object_fences’: drivers/gpu/drm/panfrost/panfrost_job.c:251:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration] 251 | ret = drm_sched_job_add_implicit_dependencies(job, bos[i], | ^
~~~~~~~~~~ drivers/gpu/drm/msm/msm_ringbuffer.c: In function ‘msm_ringbuffer_new’: drivers/gpu/drm/msm/msm_ringbuffer.c:90:8: error: too few arguments to function ‘drm_sched_init’ 90 | ret = drm_sched_init(&ring->sched, &msm_sched_ops, | ^~~~~~ In file included from drivers/gpu/drm/msm/msm_ringbuffer.h:10, from drivers/gpu/drm/msm/msm_ringbuffer.c:7: ./include/drm/gpu_scheduler.h:465:5: note: declared here 465 | int drm_sched_init(struct drm_gpu_scheduler *sched, | ^~~~~~ make[4]: [scripts/Makefile.build:287: drivers/gpu/drm/msm/msm_ringbuffer.o] Error 1 make[4]: Waiting for unfinished jobs.... drivers/gpu/drm/msm/msm_gem_submit.c: In function ‘submit_fence_sync’: drivers/gpu/drm/msm/msm_gem_submit.c:338:9: error: implicit declaration of function ‘drm_sched_job_add_implicit_dependencies’ [-Werror=implicit-function-declaration] 338 | ret = drm_sched_job_add_implicit_dependencies(&submit->base, | ^~~~~~~~~~~ drivers/gpu/drm/msm/msm_gem_submit.c: In function ‘msm_parse_deps’: drivers/gpu/drm/msm/msm_gem_submit.c:584:9: error: implicit declaration of function ‘drm_sched_job_add_dependency’; did you mean ‘drm_sched_rq_add_entity’? [-Werror=implicit-function-declaration] 584 | ret = drm_sched_job_add_dependency(&submit->base, fence); | ^~~~~~~~ | drm_sched_rq_add_entity. . . . . . . . drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_log2’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:98:19: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 98 | static inline int dml_log2(double x) | ^
~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_floor’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:72:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 72 | static inline double dml_floor(double a, double granularity) | ^~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:72:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_ceil’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:67:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 67 | static inline double dml_ceil(double a, double granularity) | ^~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:67:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_swath_need’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:170:13: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 170 | static void get_swath_need( | ^~~~~~ In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:29: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_max’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:47:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 47 | static inline double dml_max(double a, double b) | ^~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:47:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_vratio_pre’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:128:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 128 | static double get_vratio_pre( | ^~~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:128:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c: In function ‘get_refcyc_per_delivery’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 97 | static double get_refcyc_per_delivery( | ^~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:97:15: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.c:29: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h: In function ‘dml_pow’: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml_inline_defs.h:105:22: error: ‘-mgeneral-regs-only’ is incompatible with the use of floating-point types 105 | static inline double dml_pow(double a, int exp)===========================done========================