Intel OpenCL SDK для ядра компиляции FPGA для эмуляции с помощью команды aoc выдает ошибку компоновщика - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь скомпилировать ядро ​​для эмуляции с aoc в Intel FPGA SDK, я установил все переменные окружения, насколько это возможно, даже используя init_opencl.bat, включенный в SDK. Я использую следующую строку, используя командную строку разработчиков Visual Studio 2017 для использования компоновщика Visual Studio:

aoc -march=emulator -v -board=a10gx my_kernel.cl -o my_kernel.aocx

но всегда выдает ошибку компоновщика (ошибки на испанском языке, извините за это).

Creando biblioteca libkernel.lib и objeto libkernel.exp

libkernel.obj: ошибка LNK2019: внешний вид __imp___translate_sampler_initializer средство распознавания ошибок и ссылок на ссылки my_kernel

libkernel.obj: ошибка LNK2019: извещение о грехе Que se hace Референсия en la función __acl__copysignf

libkernel.obj: ошибка LNK2019: извещение о грехе Que se hace Референсия en la función __acl__copysignf

libkernel.obj: ошибка LNK2019: símbolo externo log2 sin resolver al Que se hace Референсия en la función __acl__sppow_approx

libkernel.obj: ошибка LNK2019: símbolo externo exp2 sin resolver al Que se hace Референсия en la función __acl__sppow_approx

ССЫЛКА: ошибка LNK2001: símbolo externo _DllMainCRTS при запуске распознавателя грехов

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x86 \ msvcrt.lib: предупреждение LNK4272: типография для библиотеки "x86" существует конфликтует с типо де макина дестино 'x64'

C: \ Program Files (x86) \ Microsoft Visual Студия \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ Lib \ x86 \ legacy_stdio_definitions.lib : предупреждение LNK4272: типография для библиотеки "x86" est en конфликтная ситуация с типами машин 'x64'

libkernel.dll: фатальная ошибка LNK1120: 6 externos sin resolver

Понятия не имею, что еще делать.

Примечание: Ядро использует объекты image2d, которые, я не совсем уверен, совместимы с ПЛИС. На самом деле это другой вопрос.

Ответы [ 3 ]

0 голосов
/ 14 мая 2019

Прежде всего, спасибо doqtor за ваш ответ ... В конце концов, я смог компилировать без особого изменения ... на самом деле, если вы запускаете автономный компилятор aoc из командной строки Visual Studio Developers x64, большинство проблемы решены.

Я решил аккуратно переустановить весь Intel FPGA SDK, и на этот раз правильно настроил каждую переменную среды ... и все работало отлично ... Я смог скомпилировать и выполнить примеры SDK.

Но одна проблема не может быть решена .... мое ядро ​​использует объекты image2d_t и, конечно, sampler_t .... получается в соответствии с Руководством по программированию Intel SDK ... SDK не поддерживает изображения и сэмплеры при работе с OpenCL 1.0.

Странно то, что платформа эмулятора FPGA поддерживает ее, поэтому я смог скомпилировать с помощью эмулятора .... хотя это не решит много для меня ..... Я решил изменить свое ядро ​​и найти альтернатива изображению и сэмплерам.

Спасибо

0 голосов
/ 30 мая 2019

Отвечая на ваши вопросы:

  1. Эмулятор FPGA не поддерживает платформу x86, только x86_64 (но я думаю, вы уже решили это, я думаю).
  2. Об изображениях.SDK на самом деле не поддерживает тип изображения, но это не означает, что aoc потерпит неудачу во время компиляции.Позже вы потерпите неудачу, когда попытаетесь запустить ваше приложение.
0 голосов
/ 11 мая 2019

Весьма вероятно, что проблема заключается в том, что им (Altera, теперь Intel) все еще требуется в Windows использовать MSVC 2010 для успешного связывания своих библиотек с хост-проектом.

Это, по крайней мере, случай для fft-2d , где такое требование.

Так что у вас, вероятно, есть 2 варианта:

  1. Установка MSVC 2010

  2. Узнайте, как успешно связать их библиотеки, создаваемые с использованием MSVC 2010


Обновление

Я проверил свои записи. Чтобы иметь возможность успешно связываться с библиотеками Altera с использованием VS 2015, я дополнительно связывал с legacy_stdio_definitions.lib. Это должно войти в AdditionalDependencies в разделе компоновщика. Не могу заверить, что это поможет и вашему делу, но стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...