是否有GNU Fortran编译器(v5.3.0)选项来调整特定架构的代码?我对英特尔酷睿i7特别感兴趣。我在GNU Fortran 5.3.0 Option Summary的官方选项摘要中找不到与代码调整相关的任何内容。我记得过去曾经有一个选项-march=...
。谢谢。
修改
我找到了cat /proc/cpuinfo
的处理器架构,并访问了Intel CPU Specifications website,发现我有Sandy Bridge CPU。在我的例子中,正确的GNU选项是-march=sandybridge
。
答案 0 :(得分:2)
i7不是架构,SandyBridge,IvyBridge,Haswell以及类似的Intel CPU架构。所有这些架构都可以销售i3,i5,i7或Xeon。
您可以拥有两个i7 CPU,一个较旧,另一个较新,可以使用不同的架构。
在GCC(C,C ++,Fortran的整个套件......)中有选项-march
和-mtune
(参见https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#x86-Options)使用march
编译代码将仅在指定的体系结构上运行且更新。对于mtune
,它将在较旧的版本上运行,但会以某种方式针对指定的版本进行优化。
您可以使用native
,编译器将使用当前CPU的架构。或者,您可以手动指定一些体系结构,例如-march=haswell
,-march=ivybridge
或-march=core-avx-i
。
请注意,您需要最新版本的编译器来优化新的CPU架构。
答案 1 :(得分:1)
我认为-march = native不起作用?
编辑:用gcc 5.3尝试了hello world,它确实用选项编译,但不知道,如果它改进了。
答案 2 :(得分:1)
您要查找的所有信息都在 if($_SERVER['REQUEST_METHOD']=='POST'){
$name = trim($_POST['name']);
$contact= trim($_POST['contact']);
$email = trim($_POST['email']);
if(!empty($name) && !empty($contact) && !empty($email)){
try {
$conn = new PDO("mysql::host='localhost';dbname=majorproject;",'root','');
//for error reporting and throwing exceptions
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("insert into #_customerdata(customername,customercontact,customeremail) values(:name,:contact,:email)");
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':contact',$contact,PDO::PARAM_INT);
$stmt->bindParam(':email',$email,PDO::PARAM_STR);
if($stmt->execute()){
header('location: ../customersignup.php?status=success');
}
else{
header('location: ../customersignup.php?status=failed');
}
} catch (PDOException $e) {
echo 'CONNECTION NOT ESTABLISHED '.$e;
}
}
}
的手册页中,而不在gcc
的手册页中:
gfortran