gpt4 book ai didi

c - valgrind 报告 mkl 的 dsyev 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 19:17:19 28 4
gpt4 key购买 nike

我正在尝试使用 mkl 的 dsyev 来计算特征值和 vector 。我发现this example from intel .

它可以工作,但是当我使用 valgrind 测试它时,它给出了 1665 行错误。

太多了,我把它放在最后。

其中大部分都是未初始化的值,只要结果正确就没关系(如果我错了,请纠正我)。我担心的是 valgrind 显示的内存泄漏。我按照这个例子,在我自己的程序中使用了 dsyev,valgrind 的行为也是一样的。

如果我的程序要运行很长时间,我担心这会导致问题。

我在 Ubuntu 14.04 上,使用 -O0 选项使用 icc 13.1.1 进行编译。

这是 valgrind 结果(我不知道如何将所有内容格式化,你只能阅读最后几行):

> ==13040== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
> ==13040== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
> ==13040== Command: ./a.out
> ==13040==
> ==13040== Conditional jump or move depends on uninitialised value(s)
> ==13040== at 0x94278CD: mkl_lapack_ps_avx_xdlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_avx.so)
> ==13040== by 0x667F3C1: mkl_lapack_ps_xdlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x5C515F4: mkl_lapack_dlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6ABEEEF: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040==
> ==13040== Conditional jump or move depends on uninitialised value(s)
> ==13040== at 0x94278D3: mkl_lapack_ps_avx_xdlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_avx.so)
> ==13040== by 0x667F3C1: mkl_lapack_ps_xdlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x5C515F4: mkl_lapack_dlansy (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6ABEEEF: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x7845F52: __kmp_env_get (kmp_environment.c:127)
> ==13040== by 0x785EF96: __kmp_register_library_startup() (kmp_runtime.c:7363)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x78464B5: __kmp_env_blk_init (kmp_environment.c:536)
> ==13040== by 0x786D5B8: __kmp_env_initialize(char const*) (kmp_settings.c:4866)
> ==13040== by 0x7860419: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x7846557: __kmp_env_blk_init (kmp_environment.c:536)
> ==13040== by 0x786D5B8: __kmp_env_initialize(char const*) (kmp_settings.c:4866)
> ==13040== by 0x7860419: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> ==13040== Syscall param sched_setaffinity(mask) points to unaddressable byte(s)
> ==13040== at 0x833B3E9: syscall (syscall.S:38)
> ==13040== by 0x7882538: __kmp_affinity_determine_capable (z_Linux_util.c:385)
> ==13040== by 0x786DB20: __kmp_env_initialize(char const*) (kmp_settings.c:4974)
> ==13040== by 0x7860419: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x0 is not stack'd, malloc'd or (recently) free'd
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x78464B5: __kmp_env_blk_init (kmp_environment.c:536)
> ==13040== by 0x786CE23: __kmp_asat_env_initialize(char const*) (kmp_settings.c:5198)
> ==13040== by 0x7860497: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x7846557: __kmp_env_blk_init (kmp_environment.c:536)
> ==13040== by 0x786CE23: __kmp_asat_env_initialize(char const*) (kmp_settings.c:5198)
> ==13040== by 0x7860497: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x4FCEC58: DSYEV (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_lp64.so)
> ==13040== by 0x4010D0: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> ==13040== Invalid read of size 16
> ==13040== at 0x7899C68: __intel_sse2_strlen (in /opt/intel/composer_xe_2013.3.163/compiler/lib/intel64/libiomp5.so)
> ==13040== by 0x7845F52: __kmp_env_get (kmp_environment.c:127)
> ==13040== by 0x785E88E: __kmp_internal_end_library (kmp_runtime.c:7164)
> ==13040== by 0x7860B2D: __kmp_internal_end_atexit (kmp_runtime.c:6805)
> ==13040== by 0x785BCC8: __kmp_internal_end_fini (kmp_runtime.c:6774)
> ==13040== by 0x4010757: _dl_fini (dl-fini.c:257)
> ==13040== by 0x8282258: __run_exit_handlers (exit.c:82)
> ==13040== by 0x82822A4: exit (exit.c:104)
> ==13040== by 0x4011BB: main (in /home/usrname/virtualscreen/ConfLib/org/a.out)
> ==13040== Address 0x8811440 is 48 bytes inside a block of size 58 alloc'd
> ==13040== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x8281C59: __add_to_environ (setenv.c:193)
> ==13040== by 0x4C3277F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13040== by 0x7846093: __kmp_env_set (kmp_environment.c:236)
> ==13040== by 0x785EF8E: __kmp_register_library_startup() (kmp_runtime.c:7361)
> ==13040== by 0x78601B4: __kmp_middle_initialize (kmp_runtime.c:7876)
> ==13040== by 0x7847903: omp_get_num_procs (kmp_ftn_entry.h:497)
> ==13040== by 0x5662F44: MKL_get_N_Cores (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5662E17: mkl_serv_get_max_threads (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x5C6F94C: mkl_lapack_dorgql (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_intel_thread.so)
> ==13040== by 0x6A7A25C: mkl_lapack_dorgtr (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040== by 0x6ABF0D6: mkl_lapack_dsyev (in /opt/intel/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_core.so)
> ==13040==
> DSYEV Example Program Results
>
> Eigenvalues
> -11.07 -6.23 0.86 8.87 16.09
>
> Eigenvectors (stored columnwise)
> -0.30 -0.61 0.40 -0.37 0.49
> -0.51 -0.29 -0.41 -0.36 -0.61
> -0.08 -0.38 -0.66 0.50 0.40
> -0.00 -0.45 0.46 0.62 -0.46
> -0.80 0.45 0.17 0.31 0.16
> ==13040==
> ==13040== HEAP SUMMARY:
> ==13040== in use at exit: 38,628 bytes in 8 blocks
> ==13040== total heap usage: 29 allocs, 21 frees, 44,066 bytes allocated
> ==13040==
> ==13040== LEAK SUMMARY:
> ==13040== definitely lost: 0 bytes in 0 blocks
> ==13040== indirectly lost: 0 bytes in 0 blocks
> ==13040== possibly lost: 0 bytes in 0 blocks
> ==13040== still reachable: 38,628 bytes in 8 blocks
> ==13040== suppressed: 0 bytes in 0 blocks
> ==13040== Reachable blocks (those to which a pointer was found) are not shown.
> ==13040== To see them, rerun with: --leak-check=full --show-leak-kinds=all
> ==13040==
> ==13040== For counts of detected and suppressed errors, rerun with: -v
> ==13040== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)

最佳答案

看看memory leak when using intel mkl 。其要点是,库自行管理内存,这可能会导致 valgrind 等工具报告内存泄漏,尽管实际上没有内存泄漏。

关于c - valgrind 报告 mkl 的 dsyev 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com