Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

Running Altera OpenCL tools from a NFS server?

This might be a broader Altera issue, but I've experienced it only when working with the OpenCL SDK tools.

We have our servers setup in a fairly standard configuration - a NFS storage server which is then mounted on our various tool servers. I've found that if I use the tools, correctly configured, the hello world example performs the offline FPGA compilation fine if the application files are stored locally on the machine. If I try use the tools when located on the storage server, I get the following error:


SEVERE: Internal Error: caught exception
java.lang.RuntimeException: Can't initialize DevFamilyManagerFromDB
	at com.altera.infrastructure.devices.DevFamilyManagerFromDB.<init>(Unknown Source)
	at com.altera.infrastructure.devices.DevFamilyManager.<init>(Unknown Source)
	at com.altera.infrastructure.devices.DevFamilyManager.getInstance(Unknown Source)
	at com.altera.sopcmodel.ensemble.Ensemble.customizeParameterDescriptors(Ensemble.java:2967)
	at com.altera.sopcmodel.beanelement.BeanElement.ensureParameterDescriptorMap(BeanElement.java:160)
	at com.altera.sopcmodel.beanelement.BeanElement.getParameterDescriptors(BeanElement.java:136)
	at com.altera.sopcmodel.beanelement.BeanElementClass.newInstance(BeanElementClass.java:286)
	at com.altera.sopcmodel.ensemble.Ensemble.createQsys(Ensemble.java:586)
	at com.altera.sopcdocument.Document.create(Document.java:81)
	at com.altera.sopcdocument.ReadDocument.read(ReadDocument.java:130)
	at com.altera.qsys.tcl.QsysScript.prepareEnsembleModel(QsysScript.java:433)
	at com.altera.qsys.tcl.QsysScript.act(QsysScript.java:321)
	at com.altera.utilities.AltCmdLineToolBase.runTheTool(AltCmdLineToolBase.java:640)
	at com.altera.qsys.tcl.QsysScript.main(QsysScript.java:116)
Caused by: com.altera.infrastructure.devices.DeviceDBEnvironmentException: Can't initialize connection to /applications/altera/13.1/quartus/common/devinfo/device.db
	at com.altera.infrastructure.devices.SQLQueryRunner.connect(Unknown Source)
	at com.altera.infrastructure.devices.DeviceDB.initConnectionToDatabaseFile(Unknown Source)
	at com.altera.infrastructure.devices.DeviceDB.<init>(Unknown Source)
	... 14 more
Caused by: java.sql.SQLException: com.altera.jdbcsqlite.Exception: disk I/O error
	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:153)
	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:168)
	at com.altera.jdbcsqlite.JDBCStatement.execute(JDBCStatement.java:173)
	at com.altera.infrastructure.devices.SQLQueryRunner.initializeUnencryptedConnection(Unknown Source)
	... 17 more
Caused by: com.altera.jdbcsqlite.Exception: disk I/O error
	at com.altera.jdbcsqlite.Database.vm_compile(Native Method)
	at com.altera.jdbcsqlite.Database.compile(Database.java:684)
	at com.altera.jdbcsqlite.Database.get_table(Database.java:308)
	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:120)
	... 20 more

The key line in the 1st set seems seems to be:


Caused by: com.altera.infrastructure.devices.DeviceDBEnvironmentException: Can't initialize connection to /altera/13.1/quartus/common/devinfo/device.db

Note: I've replaced part of the actual path with [NFS MOUNT POINT] for clarity.

The device.db file that is referenced is definitely read, write and executable by the user on the compute node, although it seems quite strange that it needs to modify something in the application path?

Later on in the flow I then get the following errors:


2014.03.09.21:16:34 Error: altera_pll component only supports the following device families - STRATIX V, ARRIA V, ARRIA V GZ, ARRIA 10, CYCLONE V
2014.03.09.21:16:59 Error: system.acl_iface.pcie: Selected device family: Unknown is not supported
2014.03.09.21:16:59 Error: system.acl_iface.: altera_pll component only supports the following device families - STRATIX V, ARRIA V, ARRIA V GZ, ARRIA 10, CYCLONE V
2014.03.09.21:16:59 Error: system.acl_iface.kernel_pll: : There is no parameter named gui_reference_clock_frequency on instance kernel_pll
2014.03.09.21:16:59 Error: system.acl_iface.: set_instance_parameter_value kernel_pll gui_reference_clock_frequency 166.6666666): Format specifier 's'
2014.03.09.21:16:59 Error: system.acl_iface.kernel_interface.sys_description_rom: Device family is unknown.
2014.03.09.21:16:59 Error: system.acl_iface.kernel_interface.sys_description_rom: can't read "device_feature_array(HARDCOPY)": no such variable
2014.03.09.21:16:59 Error: system.acl_iface.config_clk.out_clk/temperature_pll.refclk: Missing connection end (try "Remove Dangling Connections")
2014.03.09.21:16:59 Error: system.acl_iface.temperature_pll.outclk0/temperature_0.clk: Missing connection start (try "Remove Dangling Connections")
2014.03.09.21:16:59 Error: system.acl_iface.global_reset.out_reset/temperature_pll.reset: Missing connection end (try "Remove Dangling Connections")
2014.03.09.21:17:19 Error: Cannot find clock for temperature_0.clk. If temperature_0.clk is exported please use a clock bridge and reset bridge instead of a clock source. Reset synchronizer, rst_controller_001, may not function if not connected to a clock source. To rectify this error a clock must be manually attached to the clock port of rst_controller_001 in the generated RTL.
2014.03.09.21:17:28 Error: Generation stopped, 54 or more modules remaining

The problem seems to relate to generating the IP cores for the code, particularly the PLL which is in the Altera directory structure (hencing making sense that it needs to be able to write to this location).

I've had problems before when using Quartus II on files in a Windows shared directory, but I'm surprised that there seem to be issues with NFS too. Is this a known problem?

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    This might be an issue outside of OpenCL. Try launching Qsys directly by running 'qsys-edit' assuming you have the Quartus /bin directly in your path. If you are on Windows you can use the Nios II command line shell to launch Qsys. If there is a Qsys issue I'm expecting there to be a bunch of errors at the bottom of the GUI.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for the reply. To be clear, when you say run qsys, do you mean something like:

    
    qsys-script --script=system.tcl --Xmx512M --XX:+UseSerialGC --system-file=system.qsys
    

    After using the -c option on the project to just generate the project files. If this is the case, then yes, I get the same error. Is there a dedicated qsys forum that I should maybe be bothering;) ?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Actually I was just thinking "qsys-edit" because that launches the tool. I just want to verify the tool is working properly because OpenCL is dependent on it. If Qsys doesn't even launch correctly then it would make sense to switch over to debugging that. Qsys is lumped into Quartus so that's the subforum most people use for Qsys questions but before doing that I would check to see if it's launch correctly since I haven't ruled out OpenCL yet.

    I think what you are referring to is how OpenCL is using Qsys which is a little different. If Qsys isn't behaving then that line command line will not work either.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ah, thanks for the clarification.

    I get just the Java error when I launch qsys-edit from the network-mounted tools:

    
    java.lang.RuntimeException: Can't initialize DevFamilyManagerFromDB
    	at com.altera.infrastructure.devices.DevFamilyManagerFromDB.<init>(Unknown Source)
    	at com.altera.infrastructure.devices.DevFamilyManager.<init>(Unknown Source)
    	at com.altera.infrastructure.devices.DevFamilyManager.getInstance(Unknown Source)
    	at com.altera.sopcmodel.ensemble.Ensemble.customizeParameterDescriptors(Ensemble.java:2967)
    	at com.altera.sopcmodel.beanelement.BeanElement.ensureParameterDescriptorMap(BeanElement.java:160)
    	at com.altera.sopcmodel.beanelement.BeanElement.getParameterDescriptors(BeanElement.java:136)
    	at com.altera.sopcmodel.beanelement.BeanElementClass.newInstance(BeanElementClass.java:286)
    	at com.altera.sopcmodel.ensemble.Ensemble.createQsys(Ensemble.java:586)
    	at com.altera.sopceditor.util.EditorUtils.createNewEnsemble(EditorUtils.java:1296)
    	at com.altera.ipedit.QsysEditorApp.createEditor(QsysEditorApp.java:345)
    	at com.altera.ipedit.QsysEditorApp.runQsysEditor(QsysEditorApp.java:315)
    	at com.altera.ipedit.QsysEditorApp.act(QsysEditorApp.java:226)
    	at com.altera.utilities.AltCmdLineToolBase.runTheTool(AltCmdLineToolBase.java:640)
    	at com.altera.ipedit.QsysEditorApp.main(QsysEditorApp.java:455)
    Caused by: com.altera.infrastructure.devices.DeviceDBEnvironmentException: Can't initialize connection to /mnt/cas_nfs/applications/altera/13.1/quartus/common/devinfo/device.db
    	at com.altera.infrastructure.devices.SQLQueryRunner.connect(Unknown Source)
    	at com.altera.infrastructure.devices.DeviceDB.initConnectionToDatabaseFile(Unknown Source)
    	at com.altera.infrastructure.devices.DeviceDB.<init>(Unknown Source)
    	... 14 more
    Caused by: java.sql.SQLException: com.altera.jdbcsqlite.Exception: disk I/O error
    	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:153)
    	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:168)
    	at com.altera.jdbcsqlite.JDBCStatement.execute(JDBCStatement.java:173)
    	at com.altera.infrastructure.devices.SQLQueryRunner.initializeUnencryptedConnection(Unknown Source)
    	... 17 more
    Caused by: com.altera.jdbcsqlite.Exception: disk I/O error
    	at com.altera.jdbcsqlite.Database.vm_compile(Native Method)
    	at com.altera.jdbcsqlite.Database.compile(Database.java:684)
    	at com.altera.jdbcsqlite.Database.get_table(Database.java:308)
    	at com.altera.jdbcsqlite.JDBCStatement.executeQuery(JDBCStatement.java:120)
    	... 20 more
    

    So this suggests that system generation is failing, and hence the rest of the compile isn't working?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Sorry about the delay, I forgot about this thread. Yes that's what is looking like the culprit, it doesn't look like Qsys is even able to load up the device family information and without Qsys and Quartus operating correctly then OpenCL which depends on them will not behave properly. I know you are not the first to attempt loading up the tools over NFS so perhaps you'll find other threads about this outside the OpenCL section.

    Drawing at straws but this might be related: http://www.alteraforum.com/forum/showthread.php?t=41232